svn commit: r221466 - in head/release: . amd64 i386 pc98 sun4v
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Wed May 4 23:41:12 UTC 2011
Author: nwhitehorn
Date: Wed May 4 23:41:11 2011
New Revision: 221466
URL: http://svn.freebsd.org/changeset/base/221466
Log:
Repair release CD generation on PC98 and sun4v after release building
changes, and backport the new logic (ISO images are TARGET dependant, not
TARGET_CPUARCH dependant) to Makefile.sysinstall. While modifying ISO
image scripts, change several archs to use makefs (from base) instead of
mkisofs (from ports) which makes release CD generation both faster and
self-hosting.
Added:
head/release/pc98/mkisoimages.sh
- copied, changed from r221440, head/release/i386/mkisoimages.sh
head/release/sun4v/mkisoimages.sh
- copied unchanged from r221440, head/release/sparc64/mkisoimages.sh
Modified:
head/release/Makefile.sysinstall
head/release/amd64/mkisoimages.sh
head/release/i386/mkisoimages.sh
Modified: head/release/Makefile.sysinstall
==============================================================================
--- head/release/Makefile.sysinstall Wed May 4 23:34:10 2011 (r221465)
+++ head/release/Makefile.sysinstall Wed May 4 23:41:11 2011 (r221466)
@@ -1136,35 +1136,35 @@ CD_DVD1_PKGS= ${CD_PACKAGE_TREE}/dvd1
.endif
iso.1:
-.if exists(${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh)
+.if exists(${.CURDIR}/${TARGET}/mkisoimages.sh)
@echo "Creating ISO images..."
.if defined(CD_BOOT)
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \
FreeBSD_bootonly \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-bootonly.iso ${CD_BOOT}
.endif
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \
FreeBSD_Install \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc1.iso ${CD_DISC1} \
${CD_DISC1_PKGS}
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh \
FreeBSD_Packages \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2} \
${CD_DISC2_PKGS}
.if defined(MAKE_DVD)
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \
FreeBSD_Install \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-dvd1.iso ${CD_DVD1} \
${CD_DVD1_PKGS}
.endif
.if !defined(NODOC)
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh \
FreeBSD_Documentation \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc3.iso ${CD_DOCS} \
${CD_DOCS_PKGS}
.endif
.if defined(SEPARATE_LIVEFS)
- @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \
+ @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \
FreeBSD_LiveFS \
${CD}/FreeBSD-${BUILDNAME}-${TARGET}-livefs.iso ${CD_LIVEFS}
.endif
@@ -1173,7 +1173,7 @@ iso.1:
@(cd ${CD} && sha256 *.iso > FreeBSD-${BUILDNAME}-${TARGET}-iso.CHECKSUM.SHA256)
touch ${.TARGET}
.else
- @echo "Do not know how to create an ISO for ${TARGET_CPUARCH}."
+ @echo "Do not know how to create an ISO for ${TARGET}."
.endif
#
Modified: head/release/amd64/mkisoimages.sh
==============================================================================
--- head/release/amd64/mkisoimages.sh Wed May 4 23:34:10 2011 (r221465)
+++ head/release/amd64/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466)
@@ -26,7 +26,7 @@
publisher="The FreeBSD Project. http://www.freebsd.org/"
if [ "x$1" = "x-b" ]; then
# This is highly x86-centric and will be used directly below.
- bootable="-b boot/cdboot -no-emul-boot"
+ bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
shift
else
bootable=""
@@ -37,24 +37,9 @@ if [ $# -lt 3 ]; then
exit 1
fi
-type mkisofs 2>&1 | grep " is " >/dev/null
-if [ $? -ne 0 ]; then
- echo The cdrtools port is not installed. Trying to get it now.
- if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
- cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
- else
- if ! pkg_add -r cdrtools; then
- echo "Could not get it via pkg_add - please go install this"
- echo "from the ports collection and run this script again."
- exit 2
- fi
- fi
-fi
-
LABEL=$1; shift
NAME=$1; shift
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $*
+echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab
+makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $*
rm $1/etc/fstab
-
Modified: head/release/i386/mkisoimages.sh
==============================================================================
--- head/release/i386/mkisoimages.sh Wed May 4 23:34:10 2011 (r221465)
+++ head/release/i386/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466)
@@ -24,40 +24,22 @@
# into base-bits-dir as part of making the image.
publisher="The FreeBSD Project. http://www.freebsd.org/"
-
if [ "x$1" = "x-b" ]; then
- bootable="-b boot/cdboot -no-emul-boot"
- shift
-elif [ "x$1" = "x-G" ]; then
- bootable="-G /R/cdrom/bootonly/boot/cdboot"
+ # This is highly x86-centric and will be used directly below.
+ bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
shift
else
bootable=""
fi
if [ $# -lt 3 ]; then
- echo Usage: $0 '[-bG] image-label image-name base-bits-dir [extra-bits-dir]'
+ echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
exit 1
fi
-type mkisofs 2>&1 | grep " is " >/dev/null
-if [ $? -ne 0 ]; then
- echo The cdrtools port is not installed. Trying to get it now.
- if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
- cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
- else
- if ! pkg_add -r cdrtools; then
- echo "Could not get it via pkg_add - please go install this"
- echo "from the ports collection and run this script again."
- exit 2
- fi
- fi
-fi
-
LABEL=$1; shift
NAME=$1; shift
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $*
+echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab
+makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $*
rm $1/etc/fstab
-
Copied and modified: head/release/pc98/mkisoimages.sh (from r221440, head/release/i386/mkisoimages.sh)
==============================================================================
--- head/release/i386/mkisoimages.sh Wed May 4 13:50:37 2011 (r221440, copy source)
+++ head/release/pc98/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466)
@@ -24,40 +24,22 @@
# into base-bits-dir as part of making the image.
publisher="The FreeBSD Project. http://www.freebsd.org/"
-
if [ "x$1" = "x-b" ]; then
- bootable="-b boot/cdboot -no-emul-boot"
- shift
-elif [ "x$1" = "x-G" ]; then
- bootable="-G /R/cdrom/bootonly/boot/cdboot"
+ # This is highly x86-centric and will be used directly below.
+ bootable="-o generic-bootimage=$4/boot/cdboot"
shift
else
bootable=""
fi
if [ $# -lt 3 ]; then
- echo Usage: $0 '[-bG] image-label image-name base-bits-dir [extra-bits-dir]'
+ echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
exit 1
fi
-type mkisofs 2>&1 | grep " is " >/dev/null
-if [ $? -ne 0 ]; then
- echo The cdrtools port is not installed. Trying to get it now.
- if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
- cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
- else
- if ! pkg_add -r cdrtools; then
- echo "Could not get it via pkg_add - please go install this"
- echo "from the ports collection and run this script again."
- exit 2
- fi
- fi
-fi
-
LABEL=$1; shift
NAME=$1; shift
-echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
-mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $*
+echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab
+makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $*
rm $1/etc/fstab
-
Copied: head/release/sun4v/mkisoimages.sh (from r221440, head/release/sparc64/mkisoimages.sh)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/release/sun4v/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466, copy of r221440, head/release/sparc64/mkisoimages.sh)
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# Module: mkisoimages.sh
+# Author: Jordan K Hubbard
+# Date: 22 June 2001
+#
+# $FreeBSD$
+#
+# This script is used by release/Makefile to build the (optional) ISO images
+# for a FreeBSD release. It is considered architecture dependent since each
+# platform has a slightly unique way of making bootable CDs. This script
+# is also allowed to generate any number of images since that is more of
+# publishing decision than anything else.
+#
+# Usage:
+#
+# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir]
+#
+# Where -b is passed if the ISO image should be made "bootable" by
+# whatever standards this architecture supports (may be unsupported),
+# image-label is the ISO image label, image-name is the filename of the
+# resulting ISO image, base-bits-dir contains the image contents and
+# extra-bits-dir, if provided, contains additional files to be merged
+# into base-bits-dir as part of making the image.
+
+publisher="The FreeBSD Project. http://www.freebsd.org/"
+IMG=/tmp/bootfs
+MNT=/mnt
+
+if [ "x$1" = "x-b" ]; then
+ dd if=/dev/zero of=${IMG} bs=512 count=1024
+ MD=`mdconfig -a -t vnode -f ${IMG}`
+ sunlabel -w -B -b $4/boot/boot1 ${MD} auto
+ newfs -O1 -o space -m 0 /dev/${MD}
+ mount /dev/${MD} ${MNT}
+ mkdir ${MNT}/boot
+ cp $4/boot/loader ${MNT}/boot
+ umount ${MNT}
+ mdconfig -d -u ${MD#md}
+ bootable="-B ,,,,${IMG}"
+ shift
+else
+ bootable=""
+fi
+
+if [ $# -lt 3 ]; then
+ echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
+ rm -f ${IMG}
+ exit 1
+fi
+
+type mkisofs 2>&1 | grep " is " >/dev/null
+if [ $? -ne 0 ]; then
+ echo The cdrtools port is not installed. Trying to get it now.
+ if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then
+ cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean
+ else
+ if ! pkg_add -r cdrtools; then
+ echo "Could not get it via pkg_add - please go install this"
+ echo "from the ports collection and run this script again."
+ exit 2
+ fi
+ fi
+fi
+
+LABEL=$1; shift
+NAME=$1; shift
+
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
+mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $*
+rm $1/etc/fstab
+rm -f ${IMG}
More information about the svn-src-all
mailing list