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 15, 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 gui 110Adds 111.Xr Xorg 1 112along with some additional applications to the ISO (LiveDVD). 113.It Cm img 114In addition to the ISO, an image suitable for use with e.g., a USB thumb 115drive, will be created. 116.El 117.Pp 118During the process of rolling a release a check is performed to find 119out if a number of external packages to be put on the CD exist on 120your system. 121If they cannot be found, the release process will stop and give 122proper commands for downloading and setting up these packages. 123.Sh ENVIRONMENT 124.Bl -tag -width ".Va PKGBIN_PKG_DELETE" 125.It Va ISODIR 126Default prefix of 127.Va ISOFILE 128and 129.Va ISOROOT . 130.It Va ISOFILE 131Name of the ISO image to generate. 132.It Va ISOROOT 133Location where the image contents are installed to before the ISO is prepared. 134.It Va KERNCONF 135Kernel configuration(s) to use. 136.It Va PKGBIN_MKISOFS 137Location of the 138.Xr mkisofs 8 139utility which is to be used during the build. 140.It Va PKGBIN_PKG_ADD 141Location of the 142.Xr pkg_add 1 143utility which is to be used during the build. 144.It Va PKGBIN_PKG_ADMIN 145Location of the 146.Xr pkg_admin 1 147utility which is to be used during the build. 148.It Va PKGBIN_PKG_DELETE 149Location of the 150.Xr pkg_delete 1 151utility which is to be used during the build. 152.It Va PKGSRC_PACKAGES 153List of packages to be added to the ISO. 154.It Va PKGSRC_PKG_PATH 155Specifies the location where binary 156.Xr pkgsrc 7 157packages are kept. 158.It Va WITHOUT_SRCS 159If set, this variable will prevent kernel source code from being copied to 160.Pa /usr/src-sys.tar.bz2 161on the ISO image. 162.It Va IMGFILE 163The name of the image file (default is 164.Pa /usr/release/dfly.img ) . 165.It Va IMGMNT 166The mount point for the image (default is 167.Pa /usr/release/mnt ) . 168.It Va IMGUSBDEV 169The disk device to use in the image's 170.Xr fstab 5 171(default is 172.Pa /dev/da0 ) . 173.El 174.Sh FILES 175.Bl -tag -compact 176.It Pa /etc/make.conf 177.It Pa src/Makefile 178.It Pa src/Makefile.inc1 179.It Pa src/nrelease/Makefile 180.El 181.Sh EXAMPLES 182The following sequence of commands is used to build a standard 183.Dx 2.0 184installation CD image (assuming that a local git repository is 185available): 186.Bd -literal -offset indent 187cd /usr/src 188git checkout -b rel2_0 crater/DragonFly_RELEASE_2_0 189cd nrelease 190make release 191.Ed 192.Pp 193After running these commands, the image will be available in the 194.Pa /usr/release 195directory. 196.\".Pp 197.\"The steps required for engineering a release are documented in (CVS) 198.\".Pa doc/notes/release.txt 199.\"(how to branch the CVS tree etc.) 200.\"They were put in an out of the way place so normal developers would not 201.\"accidentally try to run the commands in question. 202.Sh SEE ALSO 203.Xr git 1 , 204.Xr make 1 , 205.Xr make.conf 5 , 206.Xr build 7 , 207.Xr development 7 , 208.Xr pkgsrc 7 209.Sh HISTORY 210The 211.Nm 212framework was added in 213.Dx 1.0 214to implement the idea of a 215.Dq "live CD" . 216.Sh AUTHORS 217.An -nosplit 218The 219.Nm 220infrastructure was written by 221.An Matthew Dillon . 222This manual page was written by 223.An Sascha Wildner . 224