Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/distrib Add a new simple method to put whole sets on CD imag...



details:   https://anonhg.NetBSD.org/src/rev/097f5d4f1746
branches:  trunk
changeset: 338311:097f5d4f1746
user:      martin <martin%NetBSD.org@localhost>
date:      Mon May 18 06:25:04 2015 +0000

description:
Add a new simple method to put whole sets on CD images (instead of
listing single binaries or patterns) and use those for the existing
ISO images.

diffstat:

 distrib/amd64/cdroms/Makefile.cdrom       |  58 +-----------------
 distrib/common/Makefile.bootcd            |  97 +++++++++++++++++++++++++-----
 distrib/i386/cdroms/Makefile.cdrom        |  58 +-----------------
 distrib/sparc/Makefile                    |   4 +-
 distrib/sparc64/cdroms/installcd/Makefile |  66 +-------------------
 distrib/vax/cdroms/installcd/Makefile     |  69 +---------------------
 6 files changed, 92 insertions(+), 260 deletions(-)

diffs (truncated from 557 to 300 lines):

diff -r 40aa5ff9d5a9 -r 097f5d4f1746 distrib/amd64/cdroms/Makefile.cdrom
--- a/distrib/amd64/cdroms/Makefile.cdrom       Mon May 18 01:53:50 2015 +0000
+++ b/distrib/amd64/cdroms/Makefile.cdrom       Mon May 18 06:25:04 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.cdrom,v 1.13 2015/04/18 08:56:56 martin Exp $
+# $NetBSD: Makefile.cdrom,v 1.14 2015/05/18 06:25:04 martin Exp $
 
 .include <bsd.own.mk>
 
@@ -11,62 +11,8 @@
 CDKERNELS=     netbsd-GENERIC.gz       netbsd
 CDRELEASE_NOISOS=      true
 
-CDRUNTIME+=    ./bin
-CDRUNTIME+=    ./dev/MAKEDEV
-CDRUNTIME+=    ./etc
-CDRUNTIME+=    ./lib
-CDRUNTIME+=    ./libdata
-CDRUNTIME+=    ./libexec/ld.elf_so
-CDRUNTIME+=    ./libexec/lfs_cleanerd
-CDRUNTIME+=    ./libexec/dhcpcd-run-hooks
-CDRUNTIME+=    ./libexec/resolvconf/
-CDRUNTIME+=    ./mnt
-CDRUNTIME+=    ./sbin
-CDRUNTIME+=    ./stand
-CDRUNTIME+=    ./tmp
-CDRUNTIME+=    ./usr/bin/ftp
-CDRUNTIME+=    ./usr/bin/grep
-CDRUNTIME+=    ./usr/bin/gzip
-CDRUNTIME+=    ./usr/bin/less
-CDRUNTIME+=    ./usr/bin/more
-CDRUNTIME+=    ./usr/bin/netstat
-CDRUNTIME+=    ./usr/bin/progress
-CDRUNTIME+=    ./usr/bin/sed
-CDRUNTIME+=    ./usr/bin/sort
-CDRUNTIME+=    ./usr/bin/tip
-CDRUNTIME+=    ./usr/bin/tput
-CDRUNTIME+=    ./usr/bin/vi
-CDRUNTIME+=    ./usr/bin/vmstat
-.if ${MKBSDTAR} != "no"
-CDRUNTIME+=    ./usr/lib/libarchive.so*
-.endif
-CDRUNTIME+=    ./usr/lib/libbz2.so*
-CDRUNTIME+=    ./usr/lib/libc.so*
-CDRUNTIME+=    ./usr/lib/libcurses.so*
-CDRUNTIME+=    ./usr/lib/libedit.so*
-CDRUNTIME+=    ./usr/lib/libgcc_s.so*
-CDRUNTIME+=    ./usr/lib/libintl.so*
-CDRUNTIME+=    ./usr/lib/libkvm.so*
-CDRUNTIME+=    ./usr/lib/liblzma.so*
-CDRUNTIME+=    ./usr/lib/libpthread.so*
-CDRUNTIME+=    ./usr/lib/libterminfo.so*
-CDRUNTIME+=    ./usr/lib/libutil.so*
-CDRUNTIME+=    ./usr/lib/libz.so*
-.if (${MKCRYPTO} != "no")
-CDRUNTIME+=    ./usr/lib/libcrypto.so*
-CDRUNTIME+=    ./usr/lib/libssl.so*
-.endif
-CDRUNTIME+=    ./usr/libexec/ld.elf_so
-CDRUNTIME+=    ./usr/libexec/getty
-CDRUNTIME+=    ./usr/mdec
-CDRUNTIME+=    ./usr/sbin/chroot
-CDRUNTIME+=    ./usr/sbin/installboot
-CDRUNTIME+=    ./usr/sbin/wiconfig
-CDRUNTIME+=    ./usr/share/misc/terminfo.cdb
-CDRUNTIME+=    ./usr/share/locale
-
 image_md_pre:
-       ${MKDIR} cdrom/etc
+       ${RM} -f cdrom/etc/gettytab cdrom/etc/ttys cdrom/etc/rc
        ${HOST_LN} -fs /tmp/gettytab cdrom/etc/gettytab
        ${INSTALL} ${COPY} ${.CURDIR}/../etc.ttys cdrom/etc/ttys
        ${INSTALL} ${COPY} ${.CURDIR}/../etc.rc cdrom/etc/rc
diff -r 40aa5ff9d5a9 -r 097f5d4f1746 distrib/common/Makefile.bootcd
--- a/distrib/common/Makefile.bootcd    Mon May 18 01:53:50 2015 +0000
+++ b/distrib/common/Makefile.bootcd    Mon May 18 06:25:04 2015 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.bootcd,v 1.25 2014/05/31 10:18:47 martin Exp $
+#      $NetBSD: Makefile.bootcd,v 1.26 2015/05/18 06:25:04 martin Exp $
 #
 # Makefile snipped to create a CD/DVD ISO
 #
@@ -31,6 +31,9 @@
 #      CDKERNELS       couples of the form:
 #                              source  name_on_cd
 #      CDRUNTIME       files/directories to copy from $DESTDIR onto the CD
+#      CD_SETS         sets to be extracted onto the CD
+#                      (default: base modules etc)
+#      SETS_DIR        where the CD_SETS are found (default provided)
 # source kernels are copied from ${CDINSTKERNEL} (or its obj dir)
 # note that as of yet, bootxx_cd9660 can't load kernel names of more than
 # 8 chars (though they can be in a sub-directory meaning the pathname is
@@ -56,11 +59,15 @@
 CDRELEASE_EXCLUDE+=    -s ',./installation/installimage.*,,gp'
 .endif
 
+CD_SETS?=      base modules etc
+SETS_DIR?=     ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/sets
+
 .include <bsd.own.mk>          # For PRINTOBJDIR
 .include <bsd.kernobj.mk>      # For KERNSRCDIR
 
 DISTRIBVER!=   ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh
 DISTRIBREV!=   ${HOST_SH} ${KERNSRCDIR}/conf/osrelease.sh -s
+CUROBJDIR!=    cd ${.CURDIR} && ${PRINTOBJDIR}
 ISO_VOLID!=    echo NETBSD_${DISTRIBREV} | tr a-z A-Z
 PUBLISHER?= The_NetBSD_Project
 .if defined(CDMAKEFSOPTIONS)
@@ -69,6 +76,12 @@
 _CDMAKEFSOPTIONS=      rockridge,label=${ISO_VOLID},publisher=${PUBLISHER}
 .endif
 
+.if ${MKUNPRIVED} == "no"
+CD_METALOG.unpriv=
+.else
+CD_METALOG.unpriv=-M ${METALOG}.sanitised
+.endif
+
 # Stuff that should come from elsewhere - XXX where? - HF
 CP?=           cp
 RM?=           rm
@@ -81,10 +94,37 @@
 .else
 CDIMAGE=       NetBSD-${DISTRIBVER}-${CDBASE:S/cd$//}.iso
 .endif
+WORKSPEC=      fs.spec
+CDMAKEFSEXTRAOPTS+=-F ${WORKSPEC}
 
 CLEANFILES+=   ${CDIMAGE}
 CLEANFILES+=   bootxx.${MACHINE}
+CLEANFILES+=   ${WORKSPEC}
 
+CDSETSENV=     DESTDIR=${DESTDIR:Q} \
+               MACHINE=${MACHINE:Q} \
+               MACHINE_ARCH=${MACHINE_ARCH:Q} \
+               AWK=${TOOL_AWK:Q} \
+               CKSUM=${TOOL_CKSUM:Q} \
+               DB=${TOOL_DB:Q} \
+               HOST_SH=${HOST_SH:Q} \
+               MAKE=${MAKE:Q} \
+               MKTEMP=${TOOL_MKTEMP:Q} \
+               MTREE=${TOOL_MTREE:Q} \
+               PAX=${TOOL_PAX:Q} \
+               COMPRESS_PROGRAM=${COMPRESS_PROGRAM:Q} \
+               GZIP=${GZIP_FLAGS:Q} \
+               PKG_CREATE=${TOOL_PKG_CREATE:Q} \
+               SED=${TOOL_SED:Q} \
+               TSORT=${TSORT:Q} \
+               MKRUMP=no \
+               MKCOMPAT=no \
+               MKDEBUG=no \
+               MKDEBUGLIB=no
+
+CDSETSCMD=     cd ${NETBSDSRCDIR}/distrib/sets && \
+               ${CDSETSENV} \
+               ${HOST_SH}
 
 .include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
 
@@ -100,7 +140,7 @@
 .endif
 
 prepare:
-       ${MKDIR} cdrom
+       ${MKDIR} "${CUROBJDIR}/cdrom"
 .if defined(CDKERNELS)
 .for kernel target in ${CDKERNELS}
        ${CP} ${_INSTKERNELNOBJDIR}/${kernel} cdrom/${target}
@@ -131,38 +171,35 @@
 copy-releasedir:
        ${RM} -f ${RELEASEDIR}/${CDROMS_RELEASEDIR}/${CDIMAGE}
        if ${CDRELEASE}; then                                           \
-               if [ ! -d ${RELEASEDIR}/${RELEASEMACHINEDIR} ]; then            \
+               if [ ! -d ${RELEASEDIR}/${RELEASEMACHINEDIR} ]; then    \
                        echo "Missing ${RELEASEDIR}/${RELEASEMACHINEDIR}, aborting"; \
                        exit 1;                                         \
                fi;                                                     \
-               ${MKDIR} cdrom/${MACHINE};                              \
-               curdir=$$(pwd);                                         \
-               release_destdir=$$(pwd)/cdrom/${MACHINE};               \
+               ${MKDIR} "${CUROBJDIR}/cdrom/${MACHINE}";               \
+               release_destdir="${CUROBJDIR}/cdrom/${MACHINE}";        \
                cd ${RELEASEDIR}/${RELEASEMACHINEDIR};                  \
                echo Copying $$(pwd) to $$release_destdir ...;          \
                ${TOOL_PAX}                                             \
                        -rw -pe ${PAX_v}                                \
                        ${CDRELEASE_EXCLUDE}                            \
                        . $$release_destdir;                            \
-               cd $$curdir;                                            \
+               cd "${CUROBJDIR}";                                      \
        fi
        if ${CDSOURCE}; then                                            \
                if [ ! -d ${RELEASEDIR}/source ]; then                  \
                        echo "Missing ${RELEASEDIR}/source, aborting";  \
                        exit 1;                                         \
                fi;                                                     \
-               ${MKDIR} cdrom/source;                                  \
-               curdir=$$(pwd);                                         \
-               release_destdir=$$(pwd)/cdrom/source;                   \
+               ${MKDIR} "${CUROBJDIR}/cdrom/source";                   \
+               release_destdir="${CUROBJDIR}/cdrom/source";            \
                cd ${RELEASEDIR}/source;                                \
                echo Copying $$(pwd) to $$release_destdir ...;          \
                ${TOOL_PAX}                                             \
                        -rw -pe ${PAX_v}                                \
                        . $$release_destdir;                            \
-               cd $$curdir;                                            \
+               cd "${CUROBJDIR}";                                      \
        fi
-       if [ "X${CDRUNTIME}}" != "X" ]; then                            \
-               curdir=$$(pwd);                                         \
+       if [ "X${CDRUNTIME}" != "X" ]; then                             \
                release_destdir=$${curdir}/cdrom;                       \
                cd $$release_destdir;                                   \
                cd ${DESTDIR};                                          \
@@ -170,10 +207,9 @@
                do                                                      \
                        ${TOOL_PAX} -rw -pp ${PAX_v} $${cde} $$release_destdir;\
                done;                                                   \
-               cd $$curdir;                                            \
+               cd "${CUROBJDIR}";                                      \
        fi
        if [ "X${CDEXTRA}${CDBUILDEXTRA}" != "X" ]; then                \
-               curdir=`pwd`;                                           \
                skipflag="";                                            \
                cdextra_skip="${CDEXTRA_SKIP}";                         \
                if [ "X$${cdextra_skip}" != "X" ]; then                 \
@@ -182,13 +218,13 @@
                        do                                              \
                                echo $${skip} >> cdskip;                \
                        done;                                           \
-                       skipflag="-X $${curdir}/cdskip";                \
+                       skipflag="-X ${CUROBJDIR:Q}/cdskip";            \
                fi;                                                     \
                cdextra="${CDEXTRA}";                                   \
                cdbuildextra="${CDBUILDEXTRA}";                         \
                for cde in $${cdextra} $${cdbuildextra};                \
                do                                                      \
-                       release_destdir=$${curdir}/cdrom;               \
+                       release_destdir="${CUROBJDIR}/cdrom";           \
                        if [ -f $${cde} ]; then                         \
                                echo Copying $${cde} to $$release_destdir ...;  \
                                ${CP} $${cde} $${release_destdir};      \
@@ -202,11 +238,36 @@
                                echo "Missing $${cde}, aborting";       \
                                exit 1;                                 \
                        fi;                                             \
-                       cd $$curdir;                                    \
+                       cd "${CUROBJDIR}";                              \
                done;                                                   \
        fi
+       ${MKDIR} "${CUROBJDIR}/cdrom/etc/mtree"
+.for set in ${CD_SETS}
+       ${CDSETSCMD} ./maketars -i "${CUROBJDIR}/cdrom"                 \
+           ${CD_METALOG.unpriv} -N ${NETBSDSRCDIR}/etc                 \
+           -F "${CUROBJDIR}/cdrom/etc/mtree"                           \
+           -d "${DESTDIR:S,^$,/,}" ${set}
+.endfor
+       ${CHMOD} +r "${CUROBJDIR}/cdrom/var/spool/ftp/hidden"
 
 image:
+       @echo Preparing spec files for makefs...
+       ${RM} -f ${WORKSPEC}
+       cat cdrom/etc/mtree/* |                                 \
+           ${TOOL_SED} -e 's/ size=[0-9]*//'                           \
+            -e '/^\.\/etc\/gettytab/d' > ${WORKSPEC}
+       ${HOST_SH} cdrom/dev/MAKEDEV -s all |                   \
+           ${TOOL_SED} -e '/^\. type=dir/d' -e 's,^\.,./dev,' >> ${WORKSPEC}
+.if defined(SPEC_IN)
+       cat ${SPEC_IN} >> ${WORKSPEC}
+.endif
+.if defined(SECONDARY_BOOT)
+       echo "./${SECONDARY_BOOT} type=file uname=root gname=wheel mode=0444" \
+           >> ${WORKSPEC}
+.endif
+.if defined(SPEC_EXTRA)
+       cat ${SPEC_EXTRA} >> ${WORKSPEC}
+.endif
        ${TOOL_MAKEFS} -t cd9660 ${CDMAKEFSEXTRAOPTS} -o ${_CDMAKEFSOPTIONS:Q} ${CDIMAGE} cdrom
 
 .if ${CDRELEASE} == false
diff -r 40aa5ff9d5a9 -r 097f5d4f1746 distrib/i386/cdroms/Makefile.cdrom
--- a/distrib/i386/cdroms/Makefile.cdrom        Mon May 18 01:53:50 2015 +0000
+++ b/distrib/i386/cdroms/Makefile.cdrom        Mon May 18 06:25:04 2015 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.cdrom,v 1.33 2015/04/18 08:56:57 martin Exp $
+# $NetBSD: Makefile.cdrom,v 1.34 2015/05/18 06:25:05 martin Exp $
 
 .include <bsd.own.mk>
 
@@ -11,62 +11,8 @@
 CDKERNELS=     netbsd-GENERIC.gz       netbsd
 CDRELEASE_NOISOS=      true
 
-CDRUNTIME+=    ./bin
-CDRUNTIME+=    ./dev/MAKEDEV
-CDRUNTIME+=    ./etc
-CDRUNTIME+=    ./lib
-CDRUNTIME+=    ./libdata
-CDRUNTIME+=    ./libexec/ld.elf_so



Home | Main Index | Thread Index | Old Index