NRELEASE(7)

NAME
nrelease - release building infrastructure

DESCRIPTION
DragonFly provides a complete build environment suitable for users to make full releases of the DragonFly operating system. All of the tools necessary to build releases are available from the git repository in src/nrelease. A complete release (that is, a live CD) can actually be built with only a single command. This command is aptly named “make release”.

This document does not cover source code management, quality assurance, or other aspects of the release engineering process.

TARGETS
The release Makefile (src/nrelease/Makefile) defines a number of targets which are roughly modeled after the targets used for building the system.

help
    Offer some help.

release
    Builds world and kernel, installs them, adds packages and prepares the ISO image.

quickrel
    Same as release but uses the quickworld target (alias quick).

realquickrel
    Same as release but uses the realquickworld target (alias realquick).

clean
    Removes the ISO root directory and object files.

realclean
    Same as clean but also removes external packages.

The quickrel and realquickrel targets will only work if a full buildworld and buildkernel have been done before. For a description of the corresponding build targets, see build(7).

A number of additional targets may be specified along with release, quickrel, or realquickrel to add additional features:

gui Adds Xorg(1) along with some additional applications to the ISO (LiveDVD).

nopkgs
    Do not add any packages (for debugging purposes). This is equivalent to setting DPORTS_PACKAGES empty.

binpkgs
    Install binary packages using pkg(8) instead of building them from dports(7).

During the process of rolling a release a check is performed to find out if external packages to be put on the CD exist on your system. If they cannot be found, the release process will stop and give proper commands for downloading and setting up these packages.

ENVIRONMENT

DPORTS_PACKAGES
    List of packages to be added to the ISO.

DPORTS_EXTRA_PACKAGES
    List of packages, in addition to DPORTS_PACKAGES, to be added to the ISO.

DPORTS_PATH
    Location of the dports(7) tree to be used for package building.

GITURL_SRC
    The Git URL to the system source repository.

GITURL_DPORTS
    The Git URL to the dports(7) repository.

IMGFILE
    The name of the image file (default is /usr/obj/release/dfly.img).

IMGMNT
    The mount point for the image (default is /usr/obj/release/mnt).

IMGSIZE
    The size of the IMG file (in units of 512-byte sector). The default size is determined from the actual content by leaving about 600 MB free space.

IMGSIZE_MB
    Same as IMGSIZE but specify the size in units of MB.

ISODIR
    Default prefix of ISOFILE and ISOROOT (default is /usr/obj/release).

ISOFILE
    Name of the ISO image to generate (default is /usr/obj/release/dfly.iso).

ISOROOT
    Location where the image contents are installed to before the ISO is prepared.

KERNCONF
    Kernel configuration to use.

LABEL
    The name of the disklabel64(5) slice in the IMG file and is used to identify the installation USB device. The is also the volume ID of the ISO file.

NREL_MAKE_JOBS
    The number of make jobs (default is the value of sysctl hw.ncpu).

PKG_<port>
    Specify the binary package name for port “port”.

WITHOUT_SRCS
    If set, this variable will prevent source code from being copied to the ISO image.

FILES
/etc/make.conf
src/Makefile
src/Makefile.inc1
src/nrelease/Makefile

EXAMPLES
The following sequence of commands is used to build a standard DragonFly 2.0 installation CD image (assuming that a local git repository is available, see development(7) for how to get this):

    cd /usr/src
    git checkout -b rel2_0 crater/DragonFly_RELEASE_2_0
    cd nrelease
    make release

After running these commands, the image will be available in the /usr/obj/release directory.

SEE ALSO
git(1), make(1), make.conf(5), build(7), development(7), dports(7)

HISTORY
The nrelease framework was added in DragonFly 1.0 to implement the idea of a “live CD”.

AUTHORS
-nosplit The nrelease infrastructure was written by Matthew Dillon. This manual page was written by Sascha Wildner.