Be careful what you wish for - you might get it!
Wished for by: ru
This commit is contained in:
parent
7f34345c68
commit
cef526c27c
@ -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 <bsd.prog.mk>
|
||||
|
289
tools/tools/tinderbox/tinderbox.1
Normal file
289
tools/tools/tinderbox/tinderbox.1
Normal file
@ -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.
|
Loading…
x
Reference in New Issue
Block a user