Some questions on 'make release'

John Baldwin jhb at freebsd.org
Wed Apr 22 15:30:55 UTC 2009


On Tuesday 21 April 2009 4:17:53 am Manolis Kiagias wrote:
> John Baldwin wrote:
> > On Saturday 18 April 2009 6:30:54 pm Manolis Kiagias wrote:
> >   
> >> # make release CHROOTDIR=/data/release BUILDNAME=7.2-PRERELEASE 
> >> CVSROOT=/data/ncvs EXTSRCDIR=/usr/src  CD_PACKAGE_TREE=/data/packages 
> >> -DNODOC -DNOPORTS -DNO_FLOPPIES -DMAKE_ISOS
> >>
> >> which completes, without errors but without adding the packages to any 
> >> CD or the DVD. I found out that I can add the packages after the build 
> >> by running manually /usr/src/release/i386/mkisoimage.sh with appropriate 
> >> arguments (and the resulting CD seems to work fine).  But I can't seem 
> >> to convince make release to do this.
> >>     
> >
> > This should work.  I would maybe hack on src/release/Makefile and remove 
the
> > '@' from the lines in the iso.1 target to make sure it is doing things the 
way 
> > you expect.  You could make mkisoimages.sh echo the mkisofs command line 
as 
> > well perhaps.
> >
> >   
> Thank you John. I followed your suggestions, but I am still baffled.
> I removed the '@' from the Makefile and added an echo of my own after the
> 
> echo "Creating iso images..."
> 
> in the iso.1 target to print the values of CD and CD_DISC1_PKGS variables:
> 
> echo "CD is ${CD}"
> echo "CD_DISC1_PKGS is ${CD_DISC1_PKGS}"
> 
> Running the make release I can see the "Creating iso images..." but not
> any of my messages. It is as if another copy of the Makefile is executed
> (without the changes).
> (Note I switched from EXTSRCDIR to a real CVSROOT, so it is not my
> /usr/src that is copied to the release work area)

Right, the release process chroot's into your release area and then uses 
that /usr/src/release/Makefile for the extra targets.  You can build the 
release once and then just update the release Makefile in the chroot area and 
use 'make rerelease' for testing.

> Any more suggestions are welcome, as my trial and error approach takes
> about 3 hours in the machine  used for the build ;)

Use 'make rerelease'.  It will simply pick up where the last one stopped.  If 
you need to force it to rebuild just the ISO's you can delete the iso cookie 
file created by the iso.1 target after it finishes before using 'rerelease'.  
This should dramatically lower your build time (a few seconds vs 3 hours).

-- 
John Baldwin


More information about the freebsd-hackers mailing list