From a91743ed20b5292b59ced9ab252f1db60f1f9c5c Mon Sep 17 00:00:00 2001 From: des Date: Fri, 16 May 2003 10:59:40 +0000 Subject: Be careful what you wish for - you might get it! Wished for by: ru --- tools/tools/tinderbox/Makefile | 5 + tools/tools/tinderbox/tinderbox.1 | 289 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 294 insertions(+) create mode 100644 tools/tools/tinderbox/tinderbox.1 (limited to 'tools') diff --git a/tools/tools/tinderbox/Makefile b/tools/tools/tinderbox/Makefile index b686988..cf0e4e8 100644 --- a/tools/tools/tinderbox/Makefile +++ b/tools/tools/tinderbox/Makefile @@ -5,6 +5,11 @@ BINOWN ?= ${USER} BINGRP ?= ${USER} SCRIPTS = tbmaster.pl tinderbox.pl +MANDIR ?= ${HOME}/man/man +MANOWN ?= ${USER} +MANGRP ?= ${USER} +MAN = tinderbox.1 + SUBDIR = www .include diff --git a/tools/tools/tinderbox/tinderbox.1 b/tools/tools/tinderbox/tinderbox.1 new file mode 100644 index 0000000..b2abe40 --- /dev/null +++ b/tools/tools/tinderbox/tinderbox.1 @@ -0,0 +1,289 @@ +.\"- +.\" Copyright (c) 2003 Dag-Erling Coïdan Smørgrav +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd May 16, 2003 +.Dt TINDERBOX 1 +.Os +.Sh NAME +.Nm tinderbox +.Nd build and release testing +.Sh SYNOPSIS +.Nm +.Op options +.Ar command Op ... +.Op Ar variable Ns = Ns Ar value ... +.Sh DESCRIPTION +The +.Nm +script tests the +.Fx +build and release system by performing a cross-build (and optionally a +cross-release) of an arbitrary branch of the source tree for an +arbitrary target platform. +.Pp +The following options are recognized: +.Bl -tag -width 12n +.It Fl -arch Ns = Ns Ar ARCH +Specifies the target architecture. +The default value is whatever the host system's +.Xr uname 1 +reports. +.It Fl -branch Ns = Ns Ar BRANCH +The branch to specify to +.Xr cvs 1 , +using the +.Fl r +option, when checking out sources. +The default is to use +.Fl A +instead, to get the head. +Specifying +.Va CURRENT +as the argument to +.Fl -branch +is equivalent to leaving it unspecified. +.It Fl -date Ns = Ns Ar DATE +The date to specify to +.Xr cvs 1 , +using the +.Fl D +option, when checking out sources. +The default is to use the top of whichever branch was specified. +.It Fl -jobs Ns = Ns Ar NUM +The maximum number of paralell jobs, as specified to +.Xr make 1 +using the +.Fl j +option. +The default is to use the +.Fl B +option instead, forbidding +.Xr make 1 +to perform more than one task at a time. +Specifying +.Va 0 +or +.Va 1 +to the +.Fl -jobs +option is equivalent to leaving it unspecified. +.It Fl -logfile Ns = Ns Ar FILE +The name of a file to which the output and error messages produced by +the build should be written. +Note that this file can grow quite large. +The default is to redirect all output to +.Pa /dev/stdout . +.It Fl -machine Ns = Ns Ar MACHINE +Specifies the target machine. +The default value is whatever the host system's +.Xr uname 1 +reports. +.It Fl -patch Ns = Ns Ar PATCH +The file name of a patch to apply to the source tree before building +if the +.Cm patch +command is specified. +The patch should be relative to the root of the source tree. +When building a release, the patch is passed to the release process +through the +.Ev LOCAL_PATCHES +environment variable (see +.Xr release 7 +for more information), regardless of whether the +.Cm patch +command was specified. +The default is to not apply any patches. +.It Fl -repository Ns = Ns Ar DIR +The location of the +.Xr cvs 1 +repository from which to check out sources if the +.Cm update +command is specified. +The default is +.Pa /home/ncvs . +.It Fl -sandbox Ns = Ns Ar DIR +The location of the sandbox in which the builds are to take place. +This directory should reside on a reasonably fast disk with at least +1.5 GB available (3 GB if building a release). +.It Fl -verbose +Enable additional debugging output. +.El +.Pp +Following the options on the command line, at least one of the +following commands must be specified: +.Bl -tag -width 12n +.It Cm clean +Delete the source and object trees. +This is highly recommended when sources are patched, as successive +builds will fail due to repeated application of the same patch to the +same sources. +.Pp +Note that this does not remove the chroot tree created and populated +by the release build. +.It Cm update +Update the sources using +.Xr cvs 1 . +This is highly recommended, for obvious reasons, if the +.Cm clean +command is specified. +.It Cm patch +Apply the patch specified with the +.Fl -patch +option to the source tree. +If the specified patch file does not exist, the +.Cm patch +command will fail gracefully. +.It Cm world +Build the world. +.It Cm generic +Build a GENERIC kernel. +.It Cm lint +Build a LINT kernel if available. +In +.Fx +5, the +.Pa LINT +configuration file will first be generated from the corresponding +.Pa NOTES +file. +If neither +.Pa LINT +nor +.Pa NOTES +exist in the kernel configuration directory, the +.Cm lint +command will fail gracefully. +.It Cm release +Build a release by following the procedure described in +.Xr release 7 . +Note that this is a lengthy process which requires root privileges. +.El +.Pp +The commands are executed in the order in which they are listed above, +regardless of the order in which they are listed on the command line. +.Sh NOTES +The +.Nm +script was originally written to perform daily build testing of +.Fx +4 and 5. +It is not intended for use with older releases, and probably will not +work with anything older than +.Fx 4.2 . +.Sh ENVIRONMENT +The +.Nm +script clears its environment at startup and provides its child +processes with a tailored environment. +The following variables are set for all builds: +.Bl -tag -width 18n +.It PATH +.Va /usr/bin:/usr/sbin:/bin:/sbin +.It TZ +.Va GMT +.It __MAKE_CONF +.Va /dev/null +.It CFLAGS +.Va -O -pipe +.It NO_CPU_CFLAGS +.Va YES +.El +.Pp +In addition, if one or more of the +.Cm generic , +.Cm lint +or +.Cm release +command was specified, the following variables, which affect kernel +builds, are set: +.Bl -tag -width 18n +.It COPTFLAGS +.Va -O -pipe +.It NO_CPU_COPTFLAGS +.Va YES +.El +.Pp +Finally, the following variables are set for release builds: +.Bl -tag -width 18n +.It BUILDNAME +.Va ${BRANCH}_TINDERBOX +.It CHROOTDIR +.Va $SANDBOX/root +.It CVSROOT +As specified with the +.Fl -repository +option. +.It RELEASETAG +.Va -rBRANCH +if +.Fl -branch Ns = Ns Ar BRANCH +was specified, or +.Va -A +otherwise. +.It CVSCMDARGS +.Va -DDATE +if +.Fl -date Ns = Ns Ar DATE +was specified. +.It WORLD_FLAGS , KERNEL_FLAGS +Both of these are set to +.Va -jN +if +.Fl -jobs Ns = Ns Ar N +was specified, or +.Va -B +otherwise. +.It LOCAL_PATCHES +Set to the path of the patch that was specified with the +.Fl -patch +option, if any. +.It PATCH_FLAGS +Set to +.Va -fs +if a patch was specified. +.It NOCDROM +.Va YES +.It NODOC +.Va YES +.It NOPORTS +.Va YES +.El +.Sh SEE ALSO +.Xr build 7 , +.Xr cvs 1 , +.Xr make 1 , +.Xr patch 1 , +.Xr release 7 , +.Xr tbmaster 1 +.Sh AUTHORS +.Nm +was written by +.An Dag-Erling Smørgrav Aq des@FreeBSD.org . +.Sh BUGS +are crunchy and nutritious. -- cgit v1.1