Error making custom release(7) CD-ROM image

I'm running FreeBSD 15-STABLE and I'd like to make a CD-ROM .iso image of the system with my custom configuration and patches.

I routinely build and install the universe from source - no problems with that. But when trying to make a release(7), I got an error:
Code:
# make -C release -DNOPORTS -DNODOC -DKERNCONF=MY-KERN cdrom
<Doing things for quite some time (looks good)>
...
pkg: FreeBSD-zfs-dev has a missing dependency: FreeBSD-zfs                                                 
/usr/libexec/flua: /usr/src/release/scripts/pkgbase-stage.lua:103: exit                                    
stack traceback:                                                                                           
        [C]: in function 'assert'                                                                          
        /usr/src/release/scripts/pkgbase-stage.lua:103: in local 'main'                                    
        /usr/src/release/scripts/pkgbase-stage.lua:107: in main chunk                                      
        [C]: in ?                                                                                          
*** [disc1] Error code 1

As I can see, the error is somehow related to ZFS. But I have
Code:
WITHOUT_ZFS=YES
in /etc/src.conf and I don't include
Code:
options ZFS
in my kernel config(5).

I even tried to add -DWITHOUT_ZFS=YES in the command above, but it still doesn't work.

What is the problem here?

P.S. Also, I'd also like to know: from logs (from ones that are truncated and from the error message ( /usr/src/release/scripts/pkgbase-stage.lua:103: in local 'main')) it seems that it tries to make use of pkgbase(7) somehow. But release(7) says:
Code:
     PKGBASE          Include base system packages for use with pkg(8) on the install media, instead of legacy tarball distribution sets.
It seems that by default it should make use of tarballs, not packages. I'd like it to be tarballs, how can I avoid pkgbase in this case?

Thank you!
 
I'd like to make a CD-ROM .iso image
...
But when trying to make a release(7),
Why do you include the "release" target to create a cdrom?
Rich (BB code):
# make -C release -DNOPORTS -DNODOC -DKERNCONF=MY-KERN cdrom

The "release" target reads in src/release/Makefile as follows:
Rich (BB code):
10 #  release: Invokes real-release, vm-release, cloudware-release and oci-release targets
11 #  real-release: Build all media and FTP distribution area
12 #  vm-release: Build all virtual machine image targets
13 #  cloudware-release: Build all cloud hosting provider targets
14 #  oci-release: Build all OCI container images

If your goal is to create only a cdrom, set the "cdrom" target only.

src/release/Makefile
Code:
5 #  cdrom: Builds release CD-ROM media (disc1.iso)

I update/upgrade my system from source, having the source built, I also create standard cdrom (disk1.iso) images, with the latest patch level, for use in bhyve(8) and VirtualBox VMs, using the "cdrom" target only.


It seems that by default it should make use of tarballs, not packages. I'd like it to be tarballs, how can I avoid pkgbase in this case?
PKGBASE packages are now default. For tarballs you must use the NOPKGBASE variable:

src/release/Makefile
Code:
25 #  NOPKGBASE:  if set, include dist tarballs rather than pkgbase packages in
26 #            disc1 and dvd1 installation media and build VM/cloud images using
27 #            make installkernel installworld.

Example "cdrom" target make(1) command:
make cdrom -DNOPKGBASE -DNOPORTS -DNODOC KERNCONF=MY-KERN

EDIT:

Rich (BB code):
# make -C release -DNOPORTS -DNODOC -DKERNCONF=MY-KERN cdrom
-DKERNCONF= is incorrect, it must be KERNCONF=
 
Why do you include the "release" target to create a cdrom?
I don't: "release" is the value for the -C option, it's not a make(1) target. I need it because I'm running this command from /usr/src, not /usr/src/release.

PKGBASE packages are now default. For tarballs you must use the NOPKGBASE variable
Oh, thanks! This is not in the manual page though.

I tried now:
Code:
# make -C release -DNOPKGBASE -DNODOC DKERNCONF=MY-KERN cdrom
but it fails again:
Code:
install -N /usr/src/etc -U -M /usr/obj/usr/src/amd64.amd64/release/bootonly//METALOG -D /usr/obj/usr/src/am
d64.amd64/release/bootonly -T package=utilities -d -m 0755 -o root  -g wheel  /usr/obj/usr/src/amd64.amd64/
release/bootonly/etc                                                                                       
install -N /usr/src/etc -U -M /usr/obj/usr/src/amd64.amd64/release/bootonly//METALOG -D /usr/obj/usr/src/am
d64.amd64/release/bootonly -T package=runtime,config -C -o root  -g wheel -m 644  termcap.small /usr/obj/us
r/src/amd64.amd64/release/bootonly/etc/termcap.small                                                       
pkg: Unknown OS '' in ABI string                                                                           
pkg: Cannot parse configuration file!                                                                      
*** Error code 1
 
Back
Top