The branch main has been updated by emaste:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3f494a4e5ce005c04bd96ef75e52cca0fbaaa05f

commit 3f494a4e5ce005c04bd96ef75e52cca0fbaaa05f
Author:     Ed Maste <ema...@freebsd.org>
AuthorDate: 2025-06-18 18:46:10 +0000
Commit:     Ed Maste <ema...@freebsd.org>
CommitDate: 2025-06-23 14:44:14 +0000

    release: Add NODISTSETS to skip legacy dist sets
    
    `make -DPKGBASE -DNODISTSETS` can now be used to build an installer
    without any support for dist sets.
    
    Reviewed by:    Isaac Freund <ifre...@freebsdfoundation.org>
    Event:          Kitchener-Waterloo Hackathon 202506
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D50919
---
 release/Makefile | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/release/Makefile b/release/Makefile
index 4de2fe5264a6..5875a22a5bfd 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -21,6 +21,7 @@
 # Variables affecting the build process:
 #  WORLDDIR: location of src tree -- must have built world and default kernel
 #            (by default, the directory above this one)
+#  NODISTSETS: if set, do not include dist sets or MANIFEST
 #  PKGBASE:  if set, include pkgbase packages rather than dist tarballs in
 #            disc1 and dvd1 installation media
 #  PORTSDIR: location of ports tree to distribute (default: /usr/ports)
@@ -179,6 +180,12 @@ packagesystem: ${DISTRIBUTIONS}
        sh ${.CURDIR}/scripts/make-manifest.sh $$(ls *.txz | grep -v container) 
> MANIFEST
        touch ${.TARGET}
 
+.if !defined(NODISTSETS)
+disc1: packagesystem
+bootonly: packagesystem
+dvd1: packagesystem
+.endif
+
 .if defined(PKGBASE)
 PKGBASE_REPO=  pkgbase-repo
 PKG_ABI=       $$(${PKG_CMD} -o ABI_FILE=${.TARGET}/usr/bin/uname config ABI)
@@ -188,7 +195,7 @@ pkgbase-repo:
        mkdir -p pkgbase-repo
        ( ${IMAKE} -C ${WORLDDIR} packages REPODIR=${.OBJDIR}/pkgbase-repo )
 
-disc1: packagesystem ${PKGBASE_REPO}
+disc1: ${PKGBASE_REPO}
 # Install system
        mkdir -p ${.TARGET}
        ( cd ${WORLDDIR} && ${IMAKE} installworld installkernel distribution \
@@ -211,6 +218,7 @@ disc1: packagesystem ${PKGBASE_REPO}
            mtree -C -k type,mode,link,size | \
            sed 's|^\.|./usr/freebsd-packages|g' >> ${.TARGET}/METALOG
 .endif
+.if !defined(NODISTSETS)
        # Copy MANIFEST to provide legacy dist checksums in both modes
        mkdir -p ${.TARGET}/usr/freebsd-dist
        echo "./usr/freebsd-dist type=dir uname=root gname=wheel mode=0755" >> 
${.TARGET}/METALOG
@@ -223,6 +231,7 @@ disc1: packagesystem ${PKGBASE_REPO}
            echo "./usr/freebsd-dist/$${dist} type=file uname=root gname=wheel 
mode=0644" >> ${.TARGET}/METALOG; \
        done
 .endif
+.endif
 .if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
 # Install packages onto release media.
        ${PKG_INSTALL} pkg || true
@@ -245,7 +254,7 @@ disc1: packagesystem ${PKGBASE_REPO}
        echo "./etc/rc.local type=file uname=root gname=wheel mode=0644" >> 
${.TARGET}/METALOG
        touch ${.TARGET}
 
-bootonly: packagesystem
+bootonly:
 # Install system
        mkdir -p ${.TARGET}
        ( cd ${WORLDDIR} && ${IMAKE} installworld installkernel distribution \
@@ -256,11 +265,13 @@ bootonly: packagesystem
            MK_TOOLCHAIN=no \
            MK_RESCUE=no MK_DICT=no \
            MK_KERNEL_SYMBOLS=no MK_TESTS=no MK_DEBUG_FILES=no)
+.if !defined(NODISTSETS)
 # Copy manifest only (no distfiles) to get checksums
        mkdir -p ${.TARGET}/usr/freebsd-dist
        cp MANIFEST ${.TARGET}/usr/freebsd-dist
        echo "./usr/freebsd-dist type=dir uname=root gname=wheel mode=0755" >> 
${.TARGET}/METALOG
        echo "./usr/freebsd-dist/MANIFEST type=file uname=root gname=wheel 
mode=0644" >> ${.TARGET}/METALOG
+.endif
 .if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
 # Install packages onto release media.
        ${PKG_INSTALL} pkg || true
@@ -281,7 +292,7 @@ bootonly: packagesystem
        echo "./boot/loader.conf type=file uname=root gname=wheel mode=0644" >> 
${.TARGET}/METALOG
        echo "./etc/rc.local type=file uname=root gname=wheel mode=0644" >> 
${.TARGET}/METALOG
 
-dvd: packagesystem ${PKGBASE_REPO}
+dvd: ${PKGBASE_REPO}
 # Install system
        mkdir -p ${.TARGET}
        ( cd ${WORLDDIR} && ${IMAKE} installworld installkernel distribution \
@@ -300,6 +311,7 @@ dvd: packagesystem ${PKGBASE_REPO}
            mtree -C -k type,mode,link,size | \
            sed 's|^\.|./usr/freebsd-packages|g' >> ${.TARGET}/METALOG
 .endif
+.if !defined(NODISTSETS)
        # Copy MANIFEST to provide legacy dist checksums in both modes
        mkdir -p ${.TARGET}/usr/freebsd-dist
        echo "./usr/freebsd-dist type=dir uname=root gname=wheel mode=0755" >> 
${.TARGET}/METALOG
@@ -313,6 +325,7 @@ dvd: packagesystem ${PKGBASE_REPO}
            echo "./usr/freebsd-dist/$${dist} type=file uname=root gname=wheel 
mode=0644" >> ${.TARGET}/METALOG; \
        done
 .endif
+.endif
 .if ${.MAKE.OS} == "FreeBSD" && (!defined(NOPKG) || empty(NOPKG))
 # Install packages onto release media.
        ${PKG_INSTALL} pkg || true

Reply via email to