Add scripts and Makefile support for building ISO images automatically
as part of the release if MAKE_ISOS is set. Will also build the first CD with packages (in addition to the "minimal" CD) if CD_EXTRA_BITS points to them. This probably need a bit more work to get fully useful, but it at least covers the basics for now.
This commit is contained in:
parent
814c95264f
commit
2ef74d2289
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=80183
@ -219,6 +219,9 @@ EXTRAS= ftp.1
|
|||||||
.else
|
.else
|
||||||
EXTRAS= cdrom.1 ftp.1
|
EXTRAS= cdrom.1 ftp.1
|
||||||
.endif
|
.endif
|
||||||
|
.if defined(MAKE_ISOS)
|
||||||
|
EXTRAS+= iso.1
|
||||||
|
.endif
|
||||||
|
|
||||||
.if !defined(NODOC)
|
.if !defined(NODOC)
|
||||||
DOCREL= doc.1 doc.2
|
DOCREL= doc.1 doc.2
|
||||||
@ -336,6 +339,9 @@ rerelease release:
|
|||||||
.if defined(NOPORTS)
|
.if defined(NOPORTS)
|
||||||
echo "export NOPORTS=${NOPORTS}" >> ${CHROOTDIR}/mk
|
echo "export NOPORTS=${NOPORTS}" >> ${CHROOTDIR}/mk
|
||||||
.endif
|
.endif
|
||||||
|
.if defined(MAKE_ISOS)
|
||||||
|
echo "export MAKE_ISOS=${MAKE_ISOS}" >> ${CHROOTDIR}/mk
|
||||||
|
.endif
|
||||||
.if defined(DOMINIMALDOCPORTS)
|
.if defined(DOMINIMALDOCPORTS)
|
||||||
echo "export DOMINIMALDOCPORTS=${DOMINIMALDOCPORTS}" >> ${CHROOTDIR}/mk
|
echo "export DOMINIMALDOCPORTS=${DOMINIMALDOCPORTS}" >> ${CHROOTDIR}/mk
|
||||||
.endif
|
.endif
|
||||||
@ -761,6 +767,9 @@ cdrom.1:
|
|||||||
@ln -f ${CD_DISC2}/boot/cdboot ${CD_DISC1}/boot
|
@ln -f ${CD_DISC2}/boot/cdboot ${CD_DISC1}/boot
|
||||||
@ln -f ${CD_DISC1}/boot/loader.rc ${CD_DISC2}/boot
|
@ln -f ${CD_DISC1}/boot/loader.rc ${CD_DISC2}/boot
|
||||||
@ln -f ${CD_DISC1}/kernel ${CD_DISC2}/kernel
|
@ln -f ${CD_DISC1}/kernel ${CD_DISC2}/kernel
|
||||||
|
.elif ${MACHINE_ARCH} == "i386"
|
||||||
|
@mkdir -p ${CD_DISC2}/floppies
|
||||||
|
@cp ${CD_DISC1}/floppies/boot.flp ${CD_DISC2}/floppies
|
||||||
.endif
|
.endif
|
||||||
.if !defined(NOPORTS)
|
.if !defined(NOPORTS)
|
||||||
@-rm -rf /usr/ports/distfiles/*
|
@-rm -rf /usr/ports/distfiles/*
|
||||||
@ -771,6 +780,20 @@ cdrom.1:
|
|||||||
.endif
|
.endif
|
||||||
touch cdrom.1
|
touch cdrom.1
|
||||||
|
|
||||||
|
iso.1:
|
||||||
|
@if [ -x ${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh ]; then \
|
||||||
|
echo "Creating ISO images..."; \
|
||||||
|
${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_miniboot \
|
||||||
|
${CD}/miniboot.iso ${CD_DISC1}; \
|
||||||
|
${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_livefs \
|
||||||
|
${CD}/disc2.iso ${CD_DISC2}; \
|
||||||
|
if [ "x${CD_EXTRA_BITS}" != "x" ]; then \
|
||||||
|
${.CURDIR}/${MACHINE_ARCH}/mkisoimages.sh -b fbsd_boot \
|
||||||
|
${CD}/disc1.iso ${CD_DISC1} ${CD_EXTRA_BITS}; \
|
||||||
|
fi \
|
||||||
|
fi
|
||||||
|
touch iso.1
|
||||||
|
|
||||||
#
|
#
|
||||||
# --==## Documentation Project files such as the Handbook and FAQ ##==--
|
# --==## Documentation Project files such as the Handbook and FAQ ##==--
|
||||||
#
|
#
|
||||||
|
51
release/alpha/mkisoimages.sh
Normal file
51
release/alpha/mkisoimages.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/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.
|
||||||
|
|
||||||
|
if [ "x$1" = "x-b" ]; then
|
||||||
|
bootable="yes"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -lt 3 ]; then
|
||||||
|
echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/local/bin/mkhybrid ]; then
|
||||||
|
echo The mkisofs port is not installed. Trying to get it now.
|
||||||
|
if ! pkg_add -r mkisofs; then
|
||||||
|
echo "Couldn't get it via pkg_add - please go install this"
|
||||||
|
echo "from the ports collection and run this script again."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LABEL=$1; shift
|
||||||
|
NAME=$1; shift
|
||||||
|
|
||||||
|
mkhybrid -r -J -h -V $LABEL -o $NAME $*
|
||||||
|
if [ "x$bootable" != "x" ]; then
|
||||||
|
setcdboot $NAME /boot/cdboot
|
||||||
|
fi
|
51
release/amd64/mkisoimages.sh
Normal file
51
release/amd64/mkisoimages.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/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.
|
||||||
|
|
||||||
|
if [ "x$1" = "x-b" ]; then
|
||||||
|
# This is highly x86-centric and will be used directly below.
|
||||||
|
bootable="-b floppies/boot.flp -c floppies/boot.catalog"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
bootable=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -lt 3 ]; then
|
||||||
|
echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/local/bin/mkhybrid ]; then
|
||||||
|
echo The mkisofs port is not installed. Trying to get it now.
|
||||||
|
if ! pkg_add -r mkisofs; then
|
||||||
|
echo "Couldn't get it via pkg_add - please go install this"
|
||||||
|
echo "from the ports collection and run this script again."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LABEL=$1; shift
|
||||||
|
NAME=$1; shift
|
||||||
|
|
||||||
|
mkhybrid $bootable -r -J -h -V $LABEL -o $NAME $*
|
51
release/i386/mkisoimages.sh
Normal file
51
release/i386/mkisoimages.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/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.
|
||||||
|
|
||||||
|
if [ "x$1" = "x-b" ]; then
|
||||||
|
# This is highly x86-centric and will be used directly below.
|
||||||
|
bootable="-b floppies/boot.flp -c floppies/boot.catalog"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
bootable=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -lt 3 ]; then
|
||||||
|
echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/local/bin/mkhybrid ]; then
|
||||||
|
echo The mkisofs port is not installed. Trying to get it now.
|
||||||
|
if ! pkg_add -r mkisofs; then
|
||||||
|
echo "Couldn't get it via pkg_add - please go install this"
|
||||||
|
echo "from the ports collection and run this script again."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LABEL=$1; shift
|
||||||
|
NAME=$1; shift
|
||||||
|
|
||||||
|
mkhybrid $bootable -r -J -h -V $LABEL -o $NAME $*
|
Loading…
Reference in New Issue
Block a user