Index: release/Makefile =================================================================== RCS file: /usr/cvs/src/release/Makefile,v retrieving revision 1.536.2.112 diff -u -r1.536.2.112 Makefile --- release/Makefile 2 Nov 2003 07:07:08 -0000 1.536.2.112 +++ release/Makefile 12 Apr 2004 14:43:58 -0000 @@ -1,7 +1,7 @@ # $FreeBSD: src/release/Makefile,v 1.536.2.112 2003/11/02 07:07:08 bmah Exp $ # -# make release CHROOTDIR=/some/dir BUILDNAME=somename CVSROOT=/cvs/dir \ -# [ RELEASETAG=tag ] +# make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ +# [RELEASETAG=tag] # # Where "/some/dir" is the pathname of a directory on a some filesystem with # at least 1000MB of free space, "somename" is what you want the release to @@ -158,45 +158,32 @@ .if ${TARGET_ARCH} == "i386" .if ${TARGET} == "pc98" -SMALLBOOTSIZE= 1200 -BOOTSIZE= 1440 -FIXITSIZE= 1440 -MFSSIZE= 4320 +SMALLFLOPPYSIZE= 1200 +SMALLFLOPPYSPLITSIZE= 1152 +SMALLFLOPPYLABEL= fd1200 +SPLIT_MFSROOT= +.endif +FLOPPYSIZE= 1440 +FLOPPYSPLITSIZE= 1392 +FLOPPYINODE= 40000 +FLOPPYLABEL= fd1440 BOOTINODE= 80000 -FIXITINODE= 4000 -MFSINODE= 8000 -SMALLBOOTLABEL= fd1200 -BOOTLABEL= fd1440 -FIXITLABEL= fd1440 -MFSLABEL= minimum3 -.else -BOOTSIZE= 1440 -FIXITSIZE= 1440 MFSSIZE= 4320 -BIGBOOTSIZE= 2880 -BOOTINODE= 80000 -FIXITINODE= 4000 MFSINODE= 8000 -BOOTLABEL= fd1440 -FIXITLABEL= fd1440 MFSLABEL= minimum3 -BIGBOOTLABEL= minimum2 -.endif .elif ${TARGET_ARCH} == "alpha" -BOOTSIZE= 1440 -FIXITSIZE= 2880 -MFSSIZE= 4320 -BIGBOOTSIZE= 2880 +FLOPPYSIZE= 1440 +FLOPPYSPLITSIZE= 1392 +FLOPPYINODE= 40000 +FLOPPYLABEL= fd1440 BOOTINODE= 80000 -FIXITINODE= 4000 +MFSSIZE= 4320 MFSINODE= 8000 -BOOTLABEL= fd1440 -FIXITLABEL= minimum2 MFSLABEL= auto -BIGBOOTLABEL= minimum2 +SPLIT_MFSROOT= .endif -ZIPNSPLIT= gzip --no-name -9 -c | split -b 240640 - +ZIPNSPLIT= gzip --no-name -9 -c | split -b 1392k - # Things that need to be recompiled with Kerberos support. .if exists(${.CURDIR}/../kerberosIV) && exists(${.CURDIR}/../crypto) && !defined(NOKERBEROS) @@ -225,23 +212,45 @@ RND= ${RD}/release.doc FD= ${_R}/ftp CD= ${_R}/cdrom +.if ${TARGET} != "pc98" +CD_BOOT= ${CD}/bootonly +.endif CD_DISC1= ${CD}/disc1 CD_DISC2= ${CD}/disc2 # Where the bootstrap ports (see DOCPORTS) get installed. LOCALDIR= /usr/local/bin -.if !defined(CRUNCH_TARGETS) -CRUNCH_TARGETS= boot fixit +.if ${TARGET} != ${MACHINE} && ${DISKLABEL} == "bsdlabel" +DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} ${TARGET} +.else +DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} "" +.endif + +CRUNCH_TARGETS= boot +.if ${TARGET_ARCH} == "i386" +CRUNCH_TARGETS+=fixit +.if ${TARGET} == "pc98" +CRUNCH_TARGETS+=fixit-small +.endif .endif -EXTRAS= ftp.1 +.if !defined(NO_FLOPPIES) +EXTRAS= floppies.1 +.if ${TARGET_ARCH} == "i386" +EXTRAS+= floppies.2 +.endif +EXTRAS+= floppies.3 +.endif +EXTRAS+= ftp.1 .if !defined(NOCDROM) EXTRAS+= cdrom.1 .if defined(MAKE_ISOS) EXTRAS+= iso.1 .endif -.if ${TARGET} != "pc98" +.if ${TARGET} == "pc98" +BOOTABLE= +.else BOOTABLE="-b" .endif .endif @@ -380,6 +389,7 @@ NOPORTS \ NOSHARED \ NOSRC \ + NO_FLOPPIES \ NO_SENDMAIL \ OBJFORMAT \ RELEASETAG \ @@ -428,7 +438,9 @@ -chflags -R noschg ${_R}/. rm -rf ${_R}/* mkdir ${RD} +.if !defined(NO_FLOPPIES) mkdir ${RD}/floppies +.endif mkdir ${RD}/trees mkdir ${RD}/kernels for i in ${DISTRIBUTIONS} ; do \ @@ -593,27 +605,15 @@ (cd ${RD}/dists/src; rm -f CHECKSUM.MD5; md5 * > CHECKSUM.MD5) @echo "src distribution is finished." .endif - touch release.8 - -# Complete the bootfd -# -# Now, just to get this picture down once and for all: -# -# +------------------------------------------------------------------------+ -# |boot.flp | -# +-----+-----+------------------------------------------------------------+ -# |boot1|boot2|floppy filesystem "bootfd" | -# +-----+-----+-+----------------------+---------------------------------+-+ -# |kernel.gz |mfsroot.gz | -# +----------------------+---------------------------------+ -# + touch ${.TARGET} +# Build the memory root filesystem. release.9: -vnconfig 2>/dev/null rm -rf ${RD}/mfsfd mkdir ${RD}/mfsfd cd ${RD}/mfsfd && \ - mkdir -p etc/defaults dev mnt stand/help + mkdir -p etc/defaults dev mnt stand/etc/defaults stand/help @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \ DIR=${RD}/mfsfd/stand ZIP=false ( cd ${RD}/trees/bin/dev && \ @@ -626,97 +626,152 @@ done ) cp ${RD}/trees/bin/sbin/dhclient-script ${RD}/mfsfd/stand .if ${TARGET_ARCH} == "i386" - cp ${.CURDIR}/../etc/defaults/pccard.conf ${RD}/mfsfd/etc/defaults/pccard.conf + cp ${.CURDIR}/../etc/defaults/pccard.conf \ + ${RD}/mfsfd/etc/defaults/pccard.conf .endif cp ${.CURDIR}/../etc/usbd.conf ${RD}/mfsfd/etc/usbd.conf - cd ${RD}/trees/bin && ls ${BOOT1} | cpio -dump ${RD}/mfsfd/stand - echo "nameserver 42/tcp name" > ${RD}/mfsfd/stand/etc/services - echo "ftp 21/tcp" >> ${RD}/mfsfd/stand/etc/services - echo "domain 53/tcp nameserver" >> ${RD}/mfsfd/stand/etc/services - echo "domain 53/udp nameserver" >> ${RD}/mfsfd/stand/etc/services - echo "cmd 514/tcp shell" >> ${RD}/mfsfd/stand/etc/services - gzip -9c ${RD}/trees/bin/COPYRIGHT > ${RD}/mfsfd/stand/help/COPYRIGHT.hlp.gz + ( for F in defaults/rc.conf netconfig protocols ; do \ + sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \ + ${RD}/trees/bin/etc/$$F > ${RD}/mfsfd/stand/etc/$$F ; \ + done ) + grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]' \ + ${RD}/trees/bin/etc/services | \ + sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \ + > ${RD}/mfsfd/stand/etc/services + grep 'operator' ${RD}/trees/bin/etc/group \ + > ${RD}/mfsfd/stand/etc/group + ln ${RD}/mfsfd/stand/etc/services ${RD}/mfsfd/etc/services + ln ${RD}/mfsfd/stand/etc/group ${RD}/mfsfd/etc/group + ln ${RD}/mfsfd/stand/etc/netconfig ${RD}/mfsfd/etc/netconfig + cp ${RD}/trees/bin/COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp .if !defined(NODOC) @for i in ${DIST_DOCS_ARCH_INDEP}; do \ - gzip -9c ${RND}/${RELNOTES_LANG}/$$i/article.txt > ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT.gz; \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \ + ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ done @for i in ${DIST_DOCS_ARCH_DEP}; do \ - gzip -9c ${RND}/${RELNOTES_LANG}/$$i/${TARGET_ARCH}/article.txt > ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT.gz; \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt \ + ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ done - @mv ${RD}/mfsfd/stand/help/INSTALLATION.TXT.gz ${RD}/mfsfd/stand/help/INSTALL.TXT.gz + @mv ${RD}/mfsfd/stand/help/INSTALLATION.TXT \ + ${RD}/mfsfd/stand/help/INSTALL.TXT .endif - -test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd + -test -f ${.CURDIR}/install.cfg \ + && cp ${.CURDIR}/install.cfg ${RD}/mfsfd @mkdir -p ${RD}/mfsfd/boot @cp ${RD}/trees/bin/boot/boot* ${RD}/mfsfd/boot .if ${TARGET} == "i386" @cp ${RD}/trees/bin/boot/mbr ${RD}/mfsfd/boot .endif - @cp ${RD}/trees/bin/boot/loader.help ${RD}/mfsfd/boot - @echo "Making the regular boot floppy." @tar --exclude CVS -cf - -C ${.CURDIR}/sysinstall help | \ tar xf - -C ${RD}/mfsfd/stand - @echo "Compressing doc files..." - @gzip -9 ${RD}/mfsfd/stand/help/*.hlp -.if exists(${.CURDIR}/${TARGET}/drivers.conf) - @mkdir -p ${RD}/mfsfd/modules - @awk -f ${.CURDIR}/scripts/driver-copy2.awk \ - ${.CURDIR}/${TARGET}/drivers.conf \ - ${RD}/trees/bin/modules ${RD}/mfsfd/modules -.endif - sh -e ${.CURDIR}/scripts/doFS.sh -s mfsroot ${RD} ${MNT} \ - ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} - @gzip -9vc mfsroot > mfsroot.gz -.if ${TARGET} == "pc98" - @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/mfsroot.flp \ - ${RD} ${MNT} ${SMALLBOOTSIZE} mfsroot.gz \ - ${BOOTINODE} ${SMALLBOOTLABEL} - @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern-small FDSIZE=SMALL - @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern -.else - @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/mfsroot.flp \ - ${RD} ${MNT} ${BOOTSIZE} mfsroot.gz ${BOOTINODE} ${BOOTLABEL} - @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern - @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=boot FDSIZE=BIG + @mkdir -p ${RD}/mfsroot + sh -e ${DOFS_SH} ${RD}/mfsroot/mfsroot ${RD} ${MNT} \ + ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} + @gzip -9fnv ${RD}/mfsroot/mfsroot + touch ${.TARGET} + +KERNFLOPPYSET= ${RD}/floppyset/kern/kernel.gz +.if defined(SMALLFLOPPYSIZE) +SMALLKERNFLOPPYSET= ${RD}/floppyset/kern-small/kernel.gz +.endif +.if defined(SPLIT_MFSROOT) +MFSROOTFLOPPYSET= ${RD}/floppyset/mfsroot/mfsroot.gz +.if defined(SMALLFLOPPYSIZE) +SMALLMFSROOTFLOPPYSET= ${RD}/floppyset/mfsroot-small/mfsroot.gz +.endif .endif - @rm mfsroot mfsroot.gz - @echo "Regular and MFS boot floppies made." - touch release.9 -# -# --==## Create a fixit floppy ##==-- -# -release.10: +# Build boot and install floppies. +floppies.1: + @gzip -9nc ${RD}/trees/bin/kernel > ${RD}/kernels/kernel.gz + @echo "Making the kernel boot floppies..." + @cd ${.CURDIR} && ${MAKE} makeFloppySet FLOPPYBASE=kern \ + FLOPPYDESC="Kernel" SPLITFILE=${RD}/kernels/kernel.gz +.if defined(SMALLFLOPPYSIZE) + @echo "Making the small kernel boot floppies..." + @cd ${.CURDIR} && ${MAKE} makeFloppySet FLOPPYBASE=kern-small \ + FLOPPYDESC="Kernel" SPLITFILE=${RD}/kernels/kernel.gz \ + FDSIZE="SMALL" +.endif +.if defined(SPLIT_MFSROOT) + @echo "Making the mfsroot boot floppies..." + @cd ${.CURDIR} && ${MAKE} makeFloppySet FLOPPYBASE=mfsroot \ + FLOPPYDESC="Memory Filesystem" SPLITFILE=${RD}/mfsroot/mfsroot.gz +.if defined(SMALLFLOPPYSIZE) + @echo "Making the small mfsroot boot floppies..." + @cd ${.CURDIR} && ${MAKE} makeFloppySet FLOPPYBASE=mfsroot-small \ + FLOPPYDESC="Memory Filesystem" SPLITFILE=${RD}/mfsroot/mfsroot.gz \ + FDSIZE="SMALL" +.endif + @cd ${.CURDIR} && ${MAKE} buildBootFloppy FSIMAGE="boot" \ + KERNFILE="${KERNFLOPPYSET}.split ${KERNFLOPPYSET}.boot" \ + MFSROOTFILE="${MFSROOTFLOPPYSET}.split ${MFSROOTFLOPPYSET}.boot" +.if defined(SMALLFLOPPYSIZE) + @cd ${.CURDIR} && ${MAKE} buildBootFloppy FSIMAGE="boot-small" \ + KERNFILE="${SMALLKERNFLOPPYSET}.split ${SMALLKERNFLOPPYSET}.boot" \ + MFSROOTFILE="${SMALLMFSROOTFLOPPYSET}.split ${SMALLMFSROOTFLOPPYSET}.boot" \ + FDSIZE="SMALL" +.endif +.else # !SPLIT_MFSROOT + @cd ${.CURDIR} && ${MAKE} buildBootFloppy FSIMAGE="boot" \ + KERNFILE="${KERNFLOPPYSET}.split ${KERNFLOPPYSET}.boot" \ + MFSROOTFILE=${RD}/mfsroot/mfsroot.gz +.if defined(SMALLFLOPPYSIZE) + @cd ${.CURDIR} && ${MAKE} buildBootFloppy FSIMAGE="boot-small" \ + KERNFILE="${SMALLKERNFLOPPYSET}.split ${SMALLKERNFLOPPYSET}.boot" \ + MFSROOTFILE=${RD}/mfsroot/mfsroot.gz \ + FDSIZE="SMALL" +.endif +.endif # SPLIT_MFSROOT + touch ${.TARGET} + +# Build fixit floppy. +floppies.2: @echo "Making fixit floppy." @rm -rf ${RD}/fixitfd @mkdir ${RD}/fixitfd @cd ${RD}/fixitfd && \ - mkdir -p dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp \ - usr/share/misc - @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=fixit \ - DIR=${RD}/fixitfd/stand ZIP=false + mkdir -p dev stand bin sbin etc mnt mnt1 mnt2 mnt3 mnt4 tmp \ + usr/share/misc @( cd ${RD}/fixitfd/dev && \ sed -e '/^PATH/s/^/#/' ${RD}/trees/bin/dev/MAKEDEV > MAKEDEV && \ chmod 755 MAKEDEV && \ sh MAKEDEV fixit ) @cp ${RD}/trees/bin/etc/spwd.db ${RD}/trees/bin/etc/group \ - ${RD}/trees/bin/etc/protocols ${RD}/fixitfd/etc - @cp ${RD}/trees/bin/usr/share/misc/scsi_modes \ - ${RD}/fixitfd/usr/share/misc + ${RD}/fixitfd/etc + @sed -e 's/#.*//' ${RD}/trees/bin/etc/protocols \ + > ${RD}/fixitfd/etc/protocols + @sed -e 's/#.*//' ${RD}/trees/bin/usr/share/misc/scsi_modes \ + > ${RD}/fixitfd/usr/share/misc/scsi_modes @cp ${.CURDIR}/fixit.profile ${RD}/fixitfd/.profile @cp ${.CURDIR}/fixit.services ${RD}/fixitfd/etc/services @cp ${.CURDIR}/scripts/tar.sh ${RD}/fixitfd/stand/tar @chmod 555 ${RD}/fixitfd/stand/tar - @sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/fixit.flp ${RD} \ - ${MNT} ${FIXITSIZE} ${RD}/fixitfd ${FIXITINODE} ${FIXITLABEL} -# Do our last minute floppies directory setup in a convenient place. +.if defined(SMALLFLOPPYSIZE) + @cd ${.CURDIR} && ${MAKE} installCRUNCH CRUNCH=fixit-small \ + DIR=${RD}/fixitfd/stand ZIP=false + @sh -e ${DOFS_SH} ${RD}/floppies/fixit-small.flp ${RD} ${MNT} \ + ${SMALLFLOPPYSIZE} ${RD}/fixitfd ${FLOPPYINODE} ${SMALLFLOPPYLABEL} + @rm -rf ${RD}/fixitfd/stand + @mkdir ${RD}/fixitfd/stand +.endif + @cd ${.CURDIR} && ${MAKE} installCRUNCH CRUNCH=fixit \ + DIR=${RD}/fixitfd/stand ZIP=false + @sh -e ${DOFS_SH} ${RD}/floppies/fixit.flp ${RD} ${MNT} \ + ${FLOPPYSIZE} ${RD}/fixitfd ${FLOPPYINODE} ${FLOPPYLABEL} + touch ${.TARGET} + +# Do our last minute floppies directory setup +floppies.3: .if !defined(NODOC) @cp ${RND}/${RELNOTES_LANG}/installation/${TARGET_ARCH}/article.txt \ - ${RD}/floppies/README.TXT + ${RD}/floppies/README.TXT @(cd ${RD}/floppies; md5 README.TXT *.flp > CHECKSUM.MD5) .else @(cd ${RD}/floppies; md5 *.flp > CHECKSUM.MD5) .endif - touch release.10 + touch ${.TARGET} # # --==## Setup a suitable ftp-area ##==-- @@ -725,41 +780,47 @@ @echo "Setting up FTP distribution area" @mkdir -p ${FD} -@ln -s . ${FD}/${BUILDNAME} +.if !defined(NO_FLOPPIES) @cd ${RD} && find floppies -print | cpio -dumpl ${FD} +.endif @cd ${RD}/dists && find . -print | cpio -dumpl ${FD} .if !defined(NODOC) @for i in ${DIST_DOCS_ARCH_INDEP}; do \ - cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ - cp ${RND}/${RELNOTES_LANG}/$$i/article.html ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \ + ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.html \ + ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ done @for i in ${DIST_DOCS_ARCH_DEP}; do \ - cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET_ARCH}/article.txt ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ - cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET_ARCH}/article.html ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt \ + ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html \ + ${FD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ done @cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${FD} @mv ${FD}/INSTALLATION.TXT ${FD}/INSTALL.TXT @mv ${FD}/INSTALLATION.HTM ${FD}/INSTALL.HTM .endif @echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf -.if !defined(NOPORTS) - @tar --exclude CVS -cBf - -C ${CD_DISC1} ports | tar -xBf - -C ${FD} -.endif - touch ftp.1 + touch ${.TARGET} # # --==## Setup a suitable cdrom-area ##==-- # cdrom.1: @echo "Setting up CDROM distribution area" - @mkdir -p ${CD_DISC1} ${CD_DISC2} + @mkdir -p ${CD_BOOT} ${CD_DISC1} ${CD_DISC2} + -@ln -s . ${CD_DISC1}/${BUILDNAME} +.if !defined(NO_FLOPPIES) @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1} +.endif @cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1} @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_DISC2} ) ; \ fi \ done @rm -f ${CD_DISC2}/.profile @@ -768,60 +829,67 @@ @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf .if !defined(NODOC) @for i in ${DIST_DOCS_ARCH_INDEP}; do \ - cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ - cp ${RND}/${RELNOTES_LANG}/$$i/article.html ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \ + ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.html \ + ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ done @for i in ${DIST_DOCS_ARCH_DEP}; do \ - cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET_ARCH}/article.txt ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ - cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET_ARCH}/article.html ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt \ + ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html \ + ${CD_DISC1}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \ done @cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${CD_DISC1} @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" - @cp -Rp ${CD_DISC2}/boot ${CD_DISC1} - @ln -f ${RD}/image.boot/mfsroot.gz ${CD_DISC1}/boot/mfsroot.gz - @ln -f ${CD_DISC1}/boot/mfsroot.gz ${CD_DISC2}/boot/mfsroot.gz - @echo 'mfsroot_load="YES"' > ${CD_DISC1}/boot/loader.conf - @echo 'mfsroot_type="mfs_root"' >> ${CD_DISC1}/boot/loader.conf - @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC1}/boot/loader.conf -.if ${TARGET} == "i386" - @echo 'userconfig_script_load="YES"' >> ${CD_DISC1}/boot/loader.conf - @echo 'intro' > ${CD_DISC1}/boot/kernel.conf + @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 defined(CD_BOOT) + @cp -Rp ${CD_DISC2}/boot ${CD_BOOT} +.if defined(MINIROOT) + @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 - @ln -f ${CD_DISC1}/boot/loader.conf ${CD_DISC2}/boot/loader.conf - @ln -f ${CD_DISC2}/kernel.GENERIC ${CD_DISC1}/kernel .endif -.if ${TARGET} == "i386" - @mkdir -p ${CD_DISC2}/floppies - @cp ${CD_DISC1}/floppies/boot.flp ${CD_DISC2}/floppies -.endif -.if !defined(NOPORTS) - @mkdir -p ${CD_DISC1}/ports && \ - tar --exclude CVS --exclude 'ports/distfiles/*' -czf \ - ${CD_DISC1}/ports/ports.tgz -C /usr ports && \ - cp ${.CURDIR}/scripts/ports-install.sh ${CD_DISC1}/ports/install.sh \ - && (cd ${CD_DISC1}/ports; md5 * > CHECKSUM.MD5) + @cp -Rp ${CD_DISC2}/boot ${CD_DISC1} .endif - touch cdrom.1 + touch ${.TARGET} iso.1: - @if [ -r ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ]; then \ - echo "Creating ISO images..."; \ - sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ - fbsd_miniinst ${CD}/${BUILDNAME}-${TARGET}-miniinst.iso ${CD_DISC1}; \ - sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ - fbsd_livefs ${CD}/${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2}; \ - if [ "x${CD_EXTRA_BITS}" != "x" ]; then \ - sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ - fbsd_boot ${CD}/${BUILDNAME}-${TARGET}-disc1.iso ${CD_DISC1} ${CD_EXTRA_BITS}; \ - fi \ - else \ - echo "Do not know how to create an ISO for ${TARGET_ARCH}."; \ - fi - touch iso.1 +.if exists(${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh) + @echo "Creating ISO images..." +.if defined(CD_BOOT) + @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ + fbsd_bootonly \ + ${CD}/${BUILDNAME}-${TARGET}-bootonly.iso ${CD_BOOT} +.endif + @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ + fbsd_miniinst \ + ${CD}/${BUILDNAME}-${TARGET}-miniinst.iso ${CD_DISC1} + @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ + fbsd_livefs \ + ${CD}/${BUILDNAME}-${TARGET}-disc2.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} +.else + @echo "Do not know how to create an ISO for ${TARGET_ARCH}." +.endif # # --==## Documentation Project files such as the Handbook and FAQ ##==-- @@ -834,16 +902,18 @@ make all install clean BATCH=yes WITHOUT_X11=yes JADETEX=no \ WITHOUT_PYTHON=yes FORCE_PKG_REGISTER=yes; \ done - @cd /usr/doc && make all install 'FORMATS=html html-split txt' INSTALL_COMPRESSED='' DOCDIR=${RD}/trees/bin/usr/share/doc - touch doc.1 + @cd /usr/doc && make all install 'FORMATS=html html-split txt' \ + INSTALL_COMPRESSED='' DOCDIR=${RD}/trees/bin/usr/share/doc + touch ${.TARGET} # # --==## RELNOTESng: Next-generation replacements for *.TXT files ##==-- # doc.2: @echo "Making release documentation..." - @cd ${.CURDIR}/doc && make all install clean 'FORMATS=html txt' INSTALL_COMPRESSED='' DOCDIR=${RND} - touch doc.2 + @cd ${.CURDIR}/doc && make all install clean 'FORMATS=html txt' \ + INSTALL_COMPRESSED='' DOCDIR=${RND} + touch ${.TARGET} # Various "subroutine" and other supporting targets. @@ -864,14 +934,15 @@ @rm -rf ${RD}/dists/${TD}/${TN}* @mkdir -p ${RD}/dists/${TD} @( cd ${SD} && \ - tn=`echo ${TN} | tr '[A-Z]' '[a-z]' | cut -c1-8` && \ + tn=`echo ${TN} | tr 'A-Z' 'a-z' | cut -c1-8` && \ echo rolling ${TD}/$$tn tarball &&\ tar --exclude CVS --exclude obj --exclude BOOTMFS -cf - ${ARG} | \ ${ZIPNSPLIT} ${RD}/dists/${TD}/$$tn. && \ - sh ${.CURDIR}/scripts/info.sh ${RD}/dists/${TD}/$$tn > \ - ${RD}/dists/${TD}/$$tn.inf && \ + sh ${.CURDIR}/scripts/info.sh ${RD}/dists/${TD}/$$tn \ + > ${RD}/dists/${TD}/$$tn.inf && \ if [ -f ${.CURDIR}/scripts/$${TD}-install.sh ]; then \ - cp -p ${.CURDIR}/scripts/$${TD}-install.sh ${RD}/dists/${TD}/install.sh; \ + cp -p ${.CURDIR}/scripts/$${TD}-install.sh \ + ${RD}/dists/${TD}/install.sh; \ fi && \ if [ "${SD}" != "/usr/src" ]; then \ mtree -c -i -p ${SD}/${ARG} \ @@ -880,32 +951,21 @@ else \ true; \ fi; \ - (cd ${RD}/dists/${TD}; \ - rm -f CHECKSUM.MD5; \ - md5 * > CHECKSUM.MD5) \ + ( cd ${RD}/dists/${TD}; \ + rm -f CHECKSUM.MD5; \ + md5 * > CHECKSUM.MD5 ) \ ) -doRELEASE: release.1 release.2 release.3 ${DOCREL} release.4 release.5 \ - release.6 release.7 release.8 release.9 release.10 - @cd ${.CURDIR} && ${MAKE} ${EXTRAS} +doRELEASE: release.1 release.2 release.3 ${DOCREL} release.4 release.5 \ + release.6 release.7 release.8 release.9 ${EXTRAS} @echo "Release done" floppies: - @cd ${.CURDIR} && ${MAKE} boot.flp - @cd ${.CURDIR} && ${MAKE} fixit.flp + @rm -f release.5 release.9 floppies.[123] + @cd ${.CURDIR} && ${MAKE} release.5 release.9 floppies.1 floppies.2 \ + floppies.3 @cd ${RD} && find floppies -print | cpio -dumpl ${FD} -boot.flp: - @rm -f release.5 release.9 - @cd ${.CURDIR} && ${MAKE} release.5 release.9 CRUNCH_TARGETS=boot - -fixit.flp: - @rm -f release.5 release.10 - @cd ${.CURDIR} && ${MAKE} release.5 release.10 CRUNCH_TARGETS=fixit - -write_mfs_in_kernel: ${.CURDIR}/write_mfs_in_kernel.c - ${CC} ${CFLAGS} -o write_mfs_in_kernel ${.CURDIR}/write_mfs_in_kernel.c - installCRUNCH: .if !defined(CRUNCH) @echo "CRUNCH undefined in installCRUNCH" && exit 1 @@ -933,70 +993,106 @@ fi # -# --==## Put a filesystem into a BOOTMFS kernel ##==-- +# --==## Build a floppy set for a splitfs file ##==-- # -doMFSKERN: - @echo "Running ${.TARGET} for ${FSIMAGE}" - @rm -f ${RD}/kernels/BOOTMFS ${RD}/kernels/BOOTMFS.${FSIMAGE} - @cd ${.CURDIR}/../sys/${TARGET}/conf && \ - sh ${.CURDIR}/${TARGET}/dokern.sh ${FDSIZE} < GENERIC > BOOTMFS -.if ${TARGET_ARCH} == "i386" - @echo "options INTRO_USERCONFIG" >> \ - ${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS +# FLOPPYBASE - basename of floppy image files +# FLOPPYDESC - description of floppy set +# SPLITFILE - filename of the file to split +# FDSIZE - if specified and "small", small floppy is created + +.if make(makeFloppySet) +SPLITDIR= ${RD}/floppyset/${FLOPPYBASE} +.if defined(FDSIZE) && ${FDSIZE} == "SMALL" +FLPSPLITSIZE= ${SMALLFLOPPYSPLITSIZE} +FLPSIZE= ${SMALLFLOPPYSIZE} +FLPLABEL= ${SMALLFLOPPYLABEL} +.else +FLPSPLITSIZE= ${FLOPPYSPLITSIZE} +FLPSIZE= ${FLOPPYSIZE} +FLPLABEL= ${FLOPPYLABEL} .endif -.if exists(${.CURDIR}/${TARGET}/drivers.conf) - @awk -f ${.CURDIR}/scripts/driver-remove.awk \ - ${.CURDIR}/${TARGET}/drivers.conf \ - ${.CURDIR}/../sys/${TARGET}/conf/BOOTMFS .endif - cd ${.CURDIR}/..; \ - INSTKERNNAME=BOOTMFS \ - ${CROSSMAKE} ${KERNEL_FLAGS} -DNO_MODULES -DNO_KERNELCLEAN \ - KERNCONF=BOOTMFS buildkernel reinstallkernel \ - DESTDIR=${RD}/kernels - @rm -rf ${RD}/image.${FSIMAGE} - @mkdir ${RD}/image.${FSIMAGE} - @cd ${RD}/kernels && \ - (chflags noschg BOOTMFS || true) && \ - ${WMAKEENV} strip -R .comment BOOTMFS && \ - cp BOOTMFS BOOTMFS.${FSIMAGE} - mv ${RD}/kernels/BOOTMFS ${RD}/image.${FSIMAGE}/kernel + +makeFloppySet: +.if !defined(FLOPPYBASE) + @echo "FLOPPYBASE undefined in ${.TARGET}" && exit 1 +.endif +.if !defined(FLOPPYDESC) + @echo "FLOPPYDESC undefined in ${.TARGET}" && exit 1 +.endif +.if !defined(SPLITFILE) + @echo "SPLITFILE undefined in ${.TARGET}" && exit 1 +.endif + sh ${.CURDIR}/scripts/split-file.sh ${SPLITFILE} \ + ${RD}/floppyset/${FLOPPYBASE} ${FLPSPLITSIZE} "${FLOPPYDESC}" + ( splitfile=${SPLITDIR}/`basename ${SPLITFILE}`.split ; \ + lines=`cat $${splitfile} | wc -l`; \ + lines=$$((lines - 1)) ; \ + for line in `jot $$lines`; do \ + file=`head -n $$(($${line} + 1)) $${splitfile} | tail -1 | cut -f 1 -d ' '` ; \ + sh -e ${DOFS_SH} ${RD}/floppies/${FLOPPYBASE}$${line}.flp \ + ${RD} ${MNT} ${FLPSIZE} ${SPLITDIR}/$${file} \ + ${BOOTINODE} ${FLPLABEL}; \ + done ) + +# +# --==## Build a boot floppy ##==-- +# +# FSIMAGE - base floppy image name +# FDSIZE - if specified and "small", small floppy is created +# KERNFILE - path to kernel split file +# MFSROOTFILE - path to mfsroot split file + +.if make(buildBootFloppy) +IMAGEDIR= ${RD}/image.${FSIMAGE} +BOOTDIR= ${RD}/trees/bin/boot +IMAGEFILE= ${RD}/floppies/${FSIMAGE}.flp +.if defined(FDSIZE) && ${FDSIZE} == "SMALL" +FLPSIZE= ${SMALLFLOPPYSIZE} +FLPLABEL= ${SMALLFLOPPYLABEL} +.else +FLPSIZE= ${FLOPPYSIZE} +FLPLABEL= ${FLOPPYLABEL} +.endif +.endif + +buildBootFloppy: +.if !defined(FSIMAGE) + @echo "FSIMAGE undefined in ${.TARGET}" && exit 1 +.endif +.if !defined(KERNFILE) + @echo "KERNFILE undefined in ${.TARGET}" && exit 1 +.endif +.if !defined(MFSROOTFILE) + @echo "MFSROOTFILE undefined in ${.TARGET}" && exit 1 +.endif + @echo "Running ${.TARGET} for ${FSIMAGE}" + @rm -rf ${IMAGEDIR} + @mkdir ${IMAGEDIR} @echo "Setting up /boot directory for ${FSIMAGE} floppy" - @mkdir -p ${RD}/image.${FSIMAGE}/boot + @mkdir -p ${IMAGEDIR}/boot .if ${TARGET} == "i386" - @kgzip -vo ${RD}/image.${FSIMAGE}/boot/loader ${RD}/trees/bin/boot/loader + @${WMAKEENV} kgzip -v -l ${RD}/trees/bin/usr/lib/kgzldr.o -o \ + ${IMAGEDIR}/boot/loader ${BOOTDIR}/loader .else - @cp ${RD}/trees/bin/boot/loader ${RD}/image.${FSIMAGE}/boot + @cp ${BOOTDIR}/loader ${IMAGEDIR}/boot .endif - @echo "load /kernel" > ${RD}/image.${FSIMAGE}/boot/loader.rc -.if !defined(FDSIZE) || ${FDSIZE} != "BIG" - @echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc - @echo "echo Please insert MFS root floppy and press enter:" >> ${RD}/image.${FSIMAGE}/boot/loader.rc - @echo "read" >> ${RD}/image.${FSIMAGE}/boot/loader.rc -.endif - @echo "load -t mfs_root /mfsroot" >> ${RD}/image.${FSIMAGE}/boot/loader.rc - @echo "set module_path=\"/modules;/dist\"" >> ${RD}/image.${FSIMAGE}/boot/loader.rc - @echo "echo \\007\\007" >> ${RD}/image.${FSIMAGE}/boot/loader.rc - @echo "autoboot 10" >> ${RD}/image.${FSIMAGE}/boot/loader.rc + @cp -Rp ${BOOTDIR}/*.4th ${BOOTDIR}/defaults ${BOOTDIR}/loader.help \ + ${BOOTDIR}/loader.rc ${IMAGEDIR}/boot + @gzip -9n ${IMAGEDIR}/boot/*.4th ${IMAGEDIR}/boot/loader.help \ + ${IMAGEDIR}/boot/defaults/loader.conf + @echo 'bootfile="/kernel"' > ${IMAGEDIR}/boot/loader.conf + @echo 'mfsroot_load="YES"' >> ${IMAGEDIR}/boot/loader.conf + @echo 'mfsroot_type="mfs_root"' >> ${IMAGEDIR}/boot/loader.conf + @echo 'mfsroot_name="/mfsroot"' >> ${IMAGEDIR}/boot/loader.conf + @echo 'mfsroot_before="read -p \"Insert boot floppy and press Enter\""' >> ${IMAGEDIR}/boot/loader.conf .if ${TARGET_ARCH} == "i386" && ${AUTO_KEYBOARD_DETECT} - @echo "-P" >> ${RD}/image.${FSIMAGE}/boot.config -.endif - @gzip -9v ${RD}/image.${FSIMAGE}/kernel - @rm -f ${RD}/floppies/${FSIMAGE}.flp -.if defined(FDSIZE) && ${FDSIZE} == "BIG" - @cp mfsroot.gz ${RD}/image.${FSIMAGE} - sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ - ${RD} ${MNT} ${BIGBOOTSIZE} ${RD}/image.${FSIMAGE} \ - ${BOOTINODE} ${BIGBOOTLABEL} -.elif defined(FDSIZE) && ${FDSIZE} == "SMALL" - sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ - ${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/image.${FSIMAGE} \ - ${BOOTINODE} ${SMALLBOOTLABEL} -.else - sh -e ${.CURDIR}/scripts/doFS.sh ${RD}/floppies/${FSIMAGE}.flp \ - ${RD} ${MNT} ${BOOTSIZE} ${RD}/image.${FSIMAGE} \ - ${BOOTINODE} ${BOOTLABEL} + @echo "-P" >> ${IMAGEDIR}/boot.config .endif + @rm -f ${IMAGEFILE} + @cp ${KERNFILE} ${MFSROOTFILE} ${IMAGEDIR} + sh -e ${DOFS_SH} ${IMAGEFILE} ${RD} ${MNT} ${FLPSIZE} ${IMAGEDIR} \ + ${BOOTINODE} ${FLPLABEL} @echo "Created ${RD}/floppies/${FSIMAGE}.flp" -.include +.include Index: release/scripts/split-file.sh =================================================================== RCS file: release/scripts/split-file.sh diff -N release/scripts/split-file.sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ release/scripts/split-file.sh 9 Apr 2004 20:54:03 -0000 @@ -0,0 +1,39 @@ +#!/bin/sh +# +# $FreeBSD: src/release/scripts/split-file.sh,v 1.1 2004/01/26 19:45:09 jhb Exp $ +# + +# Bail if things fail and be verbose about what we are doing +set -ex + +# Arguments are as follows: file destdir chunksize description +FILE=$1; shift +DEST=$1; shift +CHUNK_SIZE=$1; shift +DESCR=$1; shift + +# Make sure we can read the file. +[ -r ${FILE} ] + +# Create clean working area to stick file chunks and list in +rm -rf ${DEST} || true +mkdir -p ${DEST} + +# Split the file into pieces +prefix=`basename $FILE` +dd if=${FILE} bs=16k iseek=1 | split -b ${CHUNK_SIZE}k - ${DEST}/${prefix}. + +# Create a special file for the first 16k that gets stuck on the boot +# floppy +files=`ls ${DEST}/${prefix}.*` +first=`echo "${files}" | head -1` +bootchunk="${DEST}/${prefix}.boot" +dd if=${FILE} of=${bootchunk} bs=16k count=1 + +# Create the split index file +echo `basename ${bootchunk}` "\"Boot floppy\"" > ${DEST}/${prefix}.split +i=1 +for file in ${files}; do + echo `basename ${file}` "\"${DESCR} floppy ${i}\"" >> ${DEST}/${prefix}.split + i=$((i + 1)) +done