iso.1 target and release(8) in RELENG_7 (WAS: Re: release(8) environmental variables)

Brian A. Seklecki lavalamp at
Thu Nov 1 11:07:05 PDT 2007

Here's some fun -- I'm pretty sure this worked in RELENG_6:

"make release" in /usr/src/release into RELEASEDIR=/opt/releasedir

The rebuild completes (release.1 -> release.8), the kernels are built,
the file system layout is prepared (ftp.1 -> cdrom.3), then (I think)
the iso.1 target is called and the images are zero-bytes.  Log excerpts

Either I'm confused, I have my environmental variables set wrong, or
this is broken. :)

1) My $LOCAL_SCRIPT properly copies mkisofs(1) and mkhybrid(1) into
place in the $CHROOTDIR/usr/bin

   $ ls -al  /opt/relchroot/usr/bin/mkisofs
   -r-xr-xr-x  1 root  wheel  510712 Nov  1
            02:13 /opt/relchroot/usr/bin/mkisofs

2) On the root of the system, I have to make /R a sylink
   to /opt/relchroot/R to make "make iso.1" succeed :

   # ls -al /R 
    lrwxr-xr-x  1 root  wheel  16 Oct 29 23:20 /R -> /opt/relchroot/R


 [root at build-fbsd-releng7-amd64 /usr/src/release]# make iso.1
   Creating ISO images...
   mkisofs: No such file or directory. Invalid node - /R/cdrom/bootonly
   *** Error code 2
   Stop in /usr/src/release.

3) I don't see how $CHROOTDIR is used in /usr/src/release/Makefile at:


  Unless, when not run as a manual target outside of the chroot(), it
  runs in the chroot and /R is relative to $CHROOTDIR?.  That would make
  sense of the error in the log excerpt below matched what I encounter
  on the command line as a manual run.

I'm setting:

 # applies to build
 export DESTDIR=/opt/dest
 export MAKEOBJDIRPREFIX=/opt/obj
 export RELEASEDIR=/opt/release
 export CHROOTDIR=/opt/relchroot

This is a shell script that runs nightly -- it worked in RELENG_6.


Created /R/stage/floppies/boot.flp
touch floppies.1
touch floppies.3
Setting up FTP distribution area
0 blocks  
0 blocks
touch ftp.1
Building CDROM live filesystem image
0 blocks
0 blocks
0 blocks  
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
Copy GENERIC kernel to boot area
Setting up CDROM boot area
touch cdrom.1
Building CDROM disc1 filesystem image
0 blocks
0 blocks
Building CDROM disc2 filesystem image
touch cdrom.2
Building bootonly CDROM filesystem image  
touch cdrom.3
Release done

On Wed, 2007-10-31 at 19:45 +0200, Giorgos Keramidas wrote:
> On 2007-10-31 13:26, "Brian A. Seklecki" <lavalamp at> wrote:
> >>> really sucks.
> >> 
> >> I believe that's intentional, so re-running "make release" with
> >> different CHROOTDIR values will produce consistently "similar" binaries.
> > 
> > I use LOCAL_SCRIPT to copy /etc/make.conf (well, /etc/src.conf) into place 
> > inside the jail for the rebuild so that I can build a custom internal 
> > release w/o certain subsystems (IPv6 or CSH, for example)
> > 
> > Is there a better way to do it?
> LOCAL_SCRIPT sounds fine to me :)
> _______________________________________________
> freebsd-questions at mailing list
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at"

More information about the freebsd-questions mailing list