1.\" 2.\" Copyright (c) 2006 The DragonFly Project. All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in 12.\" the documentation and/or other materials provided with the 13.\" distribution. 14.\" 3. Neither the name of The DragonFly Project nor the names of its 15.\" contributors may be used to endorse or promote products derived 16.\" from this software without specific, prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 24.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 26.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 28.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29.\" SUCH DAMAGE. 30.\" 31.\" $FreeBSD: src/share/man/man7/release.7,v 1.3.2.6 2003/04/12 20:42:30 murray Exp $ 32.\" $DragonFly: src/share/man/man7/release.7,v 1.12 2008/04/01 21:10:26 swildner Exp $ 33.\" 34.Dd January 9, 2009 35.Dt NRELEASE 7 36.Os 37.Sh NAME 38.Nm nrelease 39.Nd release building infrastructure 40.Sh DESCRIPTION 41.Dx 42provides a complete build environment suitable for users to make 43full releases of the 44.Dx 45operating system. 46All of the tools necessary to build releases are available from the 47git repository in 48.Pa src/nrelease . 49A complete release (that is, a live CD) can actually be built with 50only a single command. 51This command is aptly named 52.Dq Li "make release" . 53.Pp 54This document does not cover source code management, quality 55assurance, or other aspects of the release engineering process. 56.Sh TARGETS 57The release Makefile 58.Pq Pa src/nrelease/Makefile 59defines a number of targets which are roughly modeled after the 60targets used for building the system. 61.Bl -tag -width ".Cm realquickrel" 62.It Cm release 63Builds world and kernel, installs them, adds packages and prepares the ISO 64image. 65.It Cm quickrel 66Same as 67.Cm release 68but uses the 69.Cm quickworld 70target (alias 71.Cm quick ) . 72.It Cm realquickrel 73Same as 74.Cm release 75but uses the 76.Cm realquickworld 77target (alias 78.Cm realquick ) . 79.It Cm clean 80Removes the ISO root directory and object files. 81.It Cm realclean 82Same as 83.Cm clean 84but also removes external packages. 85.It Cm fetch 86Downloads the bootstrap kit and binary packages using 87.Xr fetch 1 . 88.El 89.Pp 90The 91.Cm quickrel 92and 93.Cm realquickrel 94targets will only work if a full 95.Cm buildworld 96and 97.Cm buildkernel 98have been done before. 99For a description of the corresponding build targets, see 100.Xr build 7 . 101.Pp 102A number of additional targets may be specified along with 103.Cm release , 104.Cm quickrel , 105or 106.Cm realquickrel 107to add additional features: 108.Bl -tag -width ".Cm realquickrel" 109.It Cm installer 110Adds the 111.Bx 112Installer to the ISO (our standard LiveCD). 113.It Cm gui 114Adds 115.Xr Xorg 1 116along with some additional applications to the ISO (LiveDVD). 117.It Cm img 118In addition to the ISO, an image suitable for use with e.g., a USB thumb 119drive, will be created. 120.El 121.Pp 122During the process of rolling a release a check is performed to find 123out if a number of external packages to be put on the CD exist on 124your system. 125If they cannot be found, the release process will stop and give 126proper commands for downloading and setting up these packages. 127.Sh ENVIRONMENT 128.Bl -tag -width ".Va PKGBIN_PKG_DELETE" 129.It Va ISODIR 130Default prefix of 131.Va ISOFILE 132and 133.Va ISOROOT . 134.It Va ISOFILE 135Name of the ISO image to generate. 136.It Va ISOROOT 137Location where the image contents are installed to before the ISO is prepared. 138.It Va KERNCONF 139Kernel configuration(s) to use. 140.It Va PKGBIN_MKISOFS 141Location of the 142.Xr mkisofs 8 143utility which is to be used during the build. 144.It Va PKGBIN_PKG_ADD 145Location of the 146.Xr pkg_add 1 147utility which is to be used during the build. 148.It Va PKGBIN_PKG_ADMIN 149Location of the 150.Xr pkg_admin 1 151utility which is to be used during the build. 152.It Va PKGBIN_PKG_DELETE 153Location of the 154.Xr pkg_delete 1 155utility which is to be used during the build. 156.It Va PKGSRC_PACKAGES 157List of packages to be added to the ISO. 158.It Va PKGSRC_PKG_PATH 159Specifies the location where binary 160.Xr pkgsrc 7 161packages are kept. 162.It Va WITHOUT_SRCS 163If set, this variable will prevent kernel source code from being copied to 164.Pa /usr/src-sys.tar.bz2 165on the ISO image. 166.It Va IMGFILE 167The name of the image file (default is 168.Pa /usr/release/dfly.img ) . 169.It Va IMGMNT 170The mount point for the image (default is 171.Pa /usr/release/mnt ) . 172.It Va IMGUSBDEV 173The disk device to use in the image's 174.Xr fstab 5 175(default is 176.Pa /dev/da0 ) . 177.El 178.Sh FILES 179.Bl -tag -compact 180.It Pa /etc/make.conf 181.It Pa src/Makefile 182.It Pa src/Makefile.inc1 183.It Pa src/nrelease/Makefile 184.El 185.Sh EXAMPLES 186The following sequence of commands is used to build a standard 187.Dx 2.0 188installation CD image (assuming that a local git repository is 189available): 190.Bd -literal -offset indent 191cd /usr/src 192git checkout -b rel2_0 crater/DragonFly_RELEASE_2_0 193cd nrelease 194make installer release 195.Ed 196.Pp 197After running these commands, the image will be available in the 198.Pa /usr/release 199directory. 200.\".Pp 201.\"The steps required for engineering a release are documented in (CVS) 202.\".Pa doc/notes/release.txt 203.\"(how to branch the CVS tree etc.) 204.\"They were put in an out of the way place so normal developers would not 205.\"accidentally try to run the commands in question. 206.Sh SEE ALSO 207.Xr git 1 , 208.Xr make 1 , 209.Xr make.conf 5 , 210.Xr build 7 , 211.Xr development 7 , 212.Xr pkgsrc 7 213.Sh HISTORY 214The 215.Nm 216framework was added in 217.Dx 1.0 218to implement the idea of a 219.Dq "live CD" . 220.Sh AUTHORS 221.An -nosplit 222The 223.Nm 224infrastructure was written by 225.An Matthew Dillon . 226This manual page was written by 227.An Sascha Wildner . 228