--- Begin Message ---
Package: devscripts
Version: 2.10.13
Source: devscripts
Synopsis:
It presently is not possible to use ccache, distcc, or other compiler
bootstrappers with debuild in an elegant way.
Rationale:
I have been using debuild for quite a while now, mainly because I know
that one of its goals is to sanitize the build environment. In any
case, I have interest in having it support a ccache or distcc
environment as elegantly as possible. What I have done here is provide
an additional CLI option that allows the user to prepend another
search location to the sanitized ${PATH}. Why I have chosen this route
is that it allows the packager to bypass a standard suite of compilers
in ${PATH} in favor of aliases, bootstrappers, job distributers, or
whatever else anyone can imagine. It's pretty implementation-agnostic.
I see this approach to being somewhat cleaner than providing explicit
support for ccache or distcc in debuild, as not doing this would
require debuild henceforth to follow ccache or distcc's environment
variable configuration rules. I'm sure none of you want to track the
specifics of their implementation. Plus, this is better than
explicitly overriding the ${PATH}, as one can do now to achieve this,
because this does not require the end-user to constantly track
debuild's implementation nor ${PATH} rules as the Linux FHS changes
over time.
An example of this use case would be:
/opt/build_tools_replacements contains replacement utilities that
override or replace make, cc, gcc, g++, ld, etc.
These tools are not to be used all the time by all persons for all
reasons; hence, they're not being in ${PATH}.
debuild --prepend-path /opt/build_tools_replacements
This makes it easy to augment debuild's standardized ${PATH} without
having to track debuild's internal override of ${PATH} in whatever
starts the build.
What are your thoughts?
I've attached a patch that I made from a SVN checkout of devscripts,
and---yes---the patch includes
modifications to the manual pages. ;-)
Cheers,
Matt
Index: debian/changelog
===================================================================
--- debian/changelog (revision 902)
+++ debian/changelog (working copy)
@@ -1,3 +1,10 @@
+devscripts (2.10.13ubuntu1) hardy; urgency=low
+
+ * Allow a user to prepend a location to PATH in debuild for reasons
+ of elegantly supporting ccache and distcc.
+
+ -- Matt T. Proud <[EMAIL PROTECTED]> Sun, 13 Jan 2008 20:35:05 -0800
+
devscripts (2.10.13) unstable; urgency=low
* The 'we sponsor Adam for DM' upload
Index: scripts/debuild.pl
===================================================================
--- scripts/debuild.pl (revision 902)
+++ scripts/debuild.pl (working copy)
@@ -88,6 +88,9 @@
--set-envvar=<envvar>=<value>, -e<envvar>=<value>
Set environment variable <envvar> to <value>
+ --prepend-path=<value>
+ Prepend normalized PATH with <value>
+
-d Skip checking of build dependencies
-D Force checking of build dependencies (default)
@@ -170,6 +173,7 @@
# Set default values before we start
my $preserve_env=0;
my %save_vars;
+my $prepend_path='';
my $root_command='';
my $run_lintian=1;
my $run_linda=0;
@@ -529,6 +533,17 @@
$check_dirname_regex = $1;
next;
}
+ if ($arg eq '--prepend-path') {
+ unless (defined ($opt = shift)) {
+ fatal "--prepend-path requires an argument,\nrun $progname --help for usage information";
+ }
+ $prepend_path = $opt;
+ next
+ }
+ if ($arg =~ /^--prepend-path=(.*)$/) {
+ $prepend_path = $1;
+ next;
+ }
if ($arg =~ /^--no-?conf$/) {
fatal "$arg is only acceptable as the first command-line option!";
}
@@ -576,6 +591,9 @@
} else {
$ENV{'PATH'} = "/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
}
+if ($prepend_path ne '') {
+ $ENV{'PATH'} = join(':', $prepend_path, $ENV{'PATH'});
+}
$save_vars{'PATH'}=1;
$ENV{'TERM'}='dumb' unless exists $ENV{'TERM'};
Index: scripts/debuild.1
===================================================================
--- scripts/debuild.1 (revision 902)
+++ scripts/debuild.1 (working copy)
@@ -1,51 +1,51 @@
-.TH DEBUILD 1 "Debian Utilities" "DEBIAN" \" -*- nroff -*-
-.SH NAME
+.TH "DEBUILD" "1" "Debian Utilities" "DEBIAN" "\""
+.SH "NAME"
debuild \- build a Debian package
-.SH SYNOPSIS
-\fBdebuild\fR [\fIdebuild options\fR] [\fIdpkg-buildpackage options\fR]
-[\fB\-\-lintian-opts\fR \fIlintian options\fR]
-[\fB\-\-linda-opts\fR \fIlinda options\fR]
-.br
+.SH "SYNOPSIS"
+\fBdebuild\fR [\fIdebuild options\fR] [\fIdpkg\-buildpackage options\fR]
+[\fB\-\-lintian\-opts\fR \fIlintian options\fR]
+[\fB\-\-linda\-opts\fR \fIlinda options\fR]
+.br
\fBdebuild\fR [\fIdebuild options\fR]
-\fBbinary\fR|\fBbinary-arch\fR|\fBbinary-indep\fR|\fBclean\fR ...
-.SH DESCRIPTION
+\fBbinary\fR|\fBbinary\-arch\fR|\fBbinary\-indep\fR|\fBclean\fR ...
+.SH "DESCRIPTION"
\fBdebuild\fR creates all the files necessary for uploading a Debian
-package. It first runs \fBdpkg-buildpackage\fR, then runs
+package. It first runs \fBdpkg\-buildpackage\fR, then runs
\fBlintian\fR and/or \fBlinda\fR on the \fI.changes\fR file created
(assuming that \fBlintian\fR and/or \fBlinda\fR is installed), and
finally signs the \fI.changes\fR and/or \fI.dsc\fR files as
appropriate (using \fBdebsign\fR(1) to do this instead of
-\fBdpkg-buildpackage\fR(1) itself; all relevant key-signing options
-are passed on). Parameters can be passed to \fBdpkg-buildpackage\fR,
+\fBdpkg\-buildpackage\fR(1) itself; all relevant key\-signing options
+are passed on). Parameters can be passed to \fBdpkg\-buildpackage\fR,
\fBlintian\fR and \fBlinda\fR, where the parameters to the latter are
-indicated with the \fB\-\-lintian-opts\fR and \fB\-\-linda-opts\fR
+indicated with the \fB\-\-lintian\-opts\fR and \fB\-\-linda\-opts\fR
options respectively. The allowable options in this case are
-\fB\-\-lintian\fR and \fB\-\-no-lintian\fR to force or skip the
+\fB\-\-lintian\fR and \fB\-\-no\-lintian\fR to force or skip the
\fBlintian\fR step, respectively, and similarly \fB\-\-linda\fR and
-\fB\-\-no-linda\fR for \fBlinda\fR. The default is to run
+\fB\-\-no\-linda\fR for \fBlinda\fR. The default is to run
\fBlintian\fR but not \fBlinda\fR. There are also various options
available for setting and preserving environment variables, as
described below in the Environment Variables section. In this method
of running \fBdebuild\fR, we also save a build log to the
file \fI../<package>_<version>_<arch>.build\fR.
-.PP
+.PP
An alternative way of using \fBdebuild\fR is to use one or more of the
-parameters \fBbinary\fR, \fBbinary-arch\fR, \fBbinary-indep\fR and
+parameters \fBbinary\fR, \fBbinary\-arch\fR, \fBbinary\-indep\fR and
\fBclean\fR, in which case \fBdebuild\fR will attempt to gain root
privileges and then run \fIdebian/rules\fR with the given parameters.
-A \fB\-\-rootcmd=\fIgain-root-command\fR or
-\fB\-r\fIgain-root-command\fR option may be used to specify a method
-of gaining root privileges. The \fIgain-root-command\fR is likely to
+A \fB\-\-rootcmd=\fIgain\-root\-command\fR or
+\fB\-r\fIgain\-root\-command\fR option may be used to specify a method
+of gaining root privileges. The \fIgain\-root\-command\fR is likely to
be one of \fIfakeroot\fR, \fIsudo\fR or \fIsuper\fR. See below for
further discussion of this point. Again, the environment preservation
options may be used. In this case, \fBdebuild\fR will also attempt to
-run \fBdpkg-checkbuilddeps\fR first; this can be explicitly requested
+run \fBdpkg\-checkbuilddeps\fR first; this can be explicitly requested
or switched off using the options \fB\-D\fR and \fB\-d\fR
respectively. Note also that if either of these or a \fB\-r\fR option
is specified in the configuration file option
DEBUILD_DPKG_BUILDPACKAGE_OPTS, then it will be recognised even in
this method of invocation of \fBdebuild\fR.
-.PP
+.PP
\fBdebuild\fR also reads the \fBdevscripts\fR configuration files as
described below. This allows default options to be given.
.SH "Directory name checking"
@@ -58,73 +58,78 @@
corresponds to the package name. Precisely how it does this is
controlled by two configuration file variables
DEVSCRIPTS_CHECK_DIRNAME_LEVEL and DEVSCRIPTS_CHECK_DIRNAME_REGEX, and
-their corresponding command-line options \fB\-\-check-dirname-level\fR
-and \fB\-\-check-dirname-regex\fR.
-.PP
+their corresponding command\-line options \fB\-\-check\-dirname\-level\fR
+and \fB\-\-check\-dirname\-regex\fR.
+.PP
DEVSCRIPTS_CHECK_DIRNAME_LEVEL can take the following values:
-.TP
+.TP
.B 0
Never check the directory name.
-.TP
+.TP
.B 1
Only check the directory name if we have had to change directory in
our search for \fIdebian/changelog\fR. This is the default behaviour.
-.TP
+.TP
.B 2
Always check the directory name.
-.PP
+.PP
The directory name is checked by testing whether the current directory
name (as determined by \fBpwd\fR(1)) matches the regex given by the
configuration file option DEVSCRIPTS_CHECK_DIRNAME_REGEX or by the
-command line option \fB\-\-check-dirname-regex\fR \fIregex\fR. Here
+command line option \fB\-\-check\-dirname\-regex\fR \fIregex\fR. Here
\fIregex\fR is a Perl regex (see \fBperlre\fR(3perl)), which will be
anchored at the beginning and the end. If \fIregex\fR contains a '/',
then it must match the full directory path. If not, then it must
match the full directory name. If \fIregex\fR contains the string
\'PACKAGE', this will be replaced by the source package name, as
determined from the changelog. The default value for the regex is:
-\'PACKAGE(-.*)?', thus matching directory names such as PACKAGE and
-PACKAGE-version.
-.SH ENVIRONMENT VARIABLES
+\'PACKAGE(\-.*)?', thus matching directory names such as PACKAGE and
+PACKAGE\-version.
+.SH "ENVIRONMENT VARIABLES"
As environment variables can affect the building of a package, often
unintentionally, \fBdebuild\fR sanitises the environment by removing
all environment variables except for TERM, HOME, LOGNAME, GNUPGHOME,
PGPPATH, GPG_AGENT_INFO, FAKEROOTKEY, DEB_* and the locale variables
LANG and LC_*. TERM is set to `dumb' if it is unset, and PATH is set
to "/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11".
-.PP
+.PP
If a particular environment variable is required to be passed through
untouched to the build process, this may be specified by using a
-\fB\-\-preserve-envvar\fR \fIenvvar\fR (which can also be written as
+\fB\-\-preserve\-envvar\fR \fIenvvar\fR (which can also be written as
\fB\-e\fR \fIenvvar\fR option). The environment may be left untouched
-by using the \fB\-\-preserve-env\fR option. However, even in this
+by using the \fB\-\-preserve\-env\fR option. However, even in this
case, the PATH will be set to the sane value described above. The
\fBonly\fR way to prevent PATH from being reset is to specify a
-\fB\-\-preserve-envvar PATH\fR option. But you are warned that using
-programs from non-standard locations can easily result in the package
+\fB\-\-preserve\-envvar PATH\fR option. But you are warned that using
+programs from non\-standard locations can easily result in the package
being broken, as it will not be able to be built on standard systems.
-.PP
+.PP
+If you need to tactically inject an item into PATH, you may use
+\fB\-\-prepend\-path\fR \fIpath\fR, as this will prepend a supplemental
+location to an otherwise\-pristine path. This is useful in cases where one
+wants to use ccache or distcc in conjunction with package building.
+.PP
It is also possible to avoid having to type something like
-\fIFOO\fB=\fIbar \fBdebuild -e \fIFOO\fR by writing \fBdebuild -e
-\fIFOO\fB=\fIbar\fR or the long form \fBdebuild --set-envvar
+\fIFOO\fB=\fIbar \fBdebuild \-e \fIFOO\fR by writing \fBdebuild \-e
+\fIFOO\fB=\fIbar\fR or the long form \fBdebuild \-\-set\-envvar
\fIFOO\fB=\fIbar\fR.
.SH "SUPERUSER REQUIREMENTS"
\fBdebuild\fR needs to be run as superuser to function properly.
There are three fundamentally different ways to do this. The first,
-and preferable, method is to use some root-gaining command. The best
+and preferable, method is to use some root\-gaining command. The best
one to use is probably \fBfakeroot\fR(1), since it does not involve
granting any genuine privileges. \fBsuper\fR(1) and \fBsudo\fR(1) are
also possibilities. If no \fB\-r\fR (or \fB\-\-rootcmd\fR) option is
-given (and recall that \fBdpkg-buildpackage\fR also accepts a \fB\-r\fR
+given (and recall that \fBdpkg\-buildpackage\fR also accepts a \fB\-r\fR
option) and neither of the following methods is used, then
\fB\-rfakeroot\fR will silently be assumed.
-.PP
+.PP
The second method is to use some command such as \fBsu\fR(1) to become
root, and then to do everything as root. Note, though, that
\fBlintian\fR will abort if it is run as root or setuid root; this can
-be overcome using the \fB\-\-allow-root\fR option of \fBlintian\fR if
+be overcome using the \fB\-\-allow\-root\fR option of \fBlintian\fR if
you know what you are doing.
-.PP
+.PP
The third possible method is to have \fBdebuild\fR installed as setuid
root. This is not the default method, and will have to be installed
as such by the system administrator. It must also be realised that
@@ -137,142 +142,145 @@
option involving multiple copies of \fBdebuild\fR, or the use of
programs such as \fBsudo\fR or \fBsuper\fR to grant root privileges to
users selectively. If the sysadmin wishes to do this, she should use
-the \fBdpkg-statoverride\fR program to change the permissions of
+the \fBdpkg\-statoverride\fR program to change the permissions of
\fI/usr/bin/debuild\fR. This will ensure that these permissions are
preserved across upgrades.
-.SH HOOKS
+.SH "HOOKS"
\fBdebuild\fR supports a number of hooks when running
\fBdpkg\-buildpackage\fR. The available hooks are as follows:
-.TP
-dpkg-buildpackage-hook
-Run before dpkg-buildpackage begins by calling dpkg-checkbuilddeps.
-.TP
-clean-hook
-Run before dpkg-buildpackage runs debian/rules clean to clean the
-source tree. (Run even if the tree is not being cleaned because -nc
+.TP
+dpkg\-buildpackage\-hook
+Run before dpkg\-buildpackage begins by calling dpkg\-checkbuilddeps.
+.TP
+clean\-hook
+Run before dpkg\-buildpackage runs debian/rules clean to clean the
+source tree. (Run even if the tree is not being cleaned because \-nc
is used.)
-.TP
-dpkg-source-hook
-Run after cleaning the tree and before running dpkg-source. (Run even
-if dpkg-source is not being called because -b or -B is used.)
-.TP
-dpkg-build-hook
-Run after dpkg-source and before calling debian/rules build. (Run
-even if this is a source-only build, so debian/rules build is not
+.TP
+dpkg\-source\-hook
+Run after cleaning the tree and before running dpkg\-source. (Run even
+if dpkg\-source is not being called because \-b or \-B is used.)
+.TP
+dpkg\-build\-hook
+Run after dpkg\-source and before calling debian/rules build. (Run
+even if this is a source\-only build, so debian/rules build is not
being called.)
-.TP
-dpkg-binary-hook
-Run between debian/rules build and debian/rules binary(-arch). Run
+.TP
+dpkg\-binary\-hook
+Run between debian/rules build and debian/rules binary(\-arch). Run
ONLY if a binary package is being built.
-.TP
-dpkg-genchanges-hook
+.TP
+dpkg\-genchanges\-hook
Run after the binary package is built and before calling
-dpkg-genchanges.
-.TP
-final-clean-hook
-Run after dpkg-genchanges and before the final debian/rules clean.
-(Run even if we are not cleaning the tree post-build, which is the
+dpkg\-genchanges.
+.TP
+final\-clean\-hook
+Run after dpkg\-genchanges and before the final debian/rules clean.
+(Run even if we are not cleaning the tree post\-build, which is the
default.)
-.TP
-lintian-hook
+.TP
+lintian\-hook
Run (once) before calling lintian and/or linda. (Run even if we are
not calling either.)
-.TP
-signing-hook
+.TP
+signing\-hook
Run after calling lintian and/or linda before any signing takes place.
(Run even if we are not signing anything.)
-.TP
-post-dpkg-buildpackage-hook
+.TP
+post\-dpkg\-buildpackage\-hook
Run after everything has finished.
-.PP
+.PP
A hook command can be specified either in the configuration file as,
for example, DEBUILD_SIGNING_HOOK='foo' (note the hyphens change into
-underscores!) or as a command line option \fB\-\-signing\-hook-foo\fR.
+underscores!) or as a command line option \fB\-\-signing\-hook\-foo\fR.
The command will have certain percent substitutions made on it: %%
will be replaced by a single % sign, %p will be replaced by the
package name, %v by the package version number, %a will be 1 if the
immediately following action is to be performed and 0 if not (for
-example, in the dpkg-source hook, %a will become 1 if dpkg-source is
+example, in the dpkg\-source hook, %a will become 1 if dpkg\-source is
to be run and 0 if not). Then it will be handed to the shell to deal
with, so it can include redirections and stuff. For example, to only
-run the dpkg-source hook if dpkg-source is to be run, the hook could
-be something like: "if [ %a -eq 1 ]; then ...; fi".
-.PP
+run the dpkg\-source hook if dpkg\-source is to be run, the hook could
+be something like: "if [ %a \-eq 1 ]; then ...; fi".
+.PP
\fBPlease take care with hooks\fR, as misuse of them can lead to
packages which FTBFS (fail to build from source). They can be useful
for taking snapshots of things or the like.
-.PP
-Finally, only dpkg-buildpackage-hook and the hooks from lintian-hook
-onwards can be used if \fBdpkg-cross\fR is installed. (This is
+.PP
+Finally, only dpkg\-buildpackage\-hook and the hooks from lintian\-hook
+onwards can be used if \fBdpkg\-cross\fR is installed. (This is
because internally, \fBdebuild\fR reimplements
\fBdpkg\-buildpackage\fR, but it does not attempt to reimplement the
\fBdpkg\-cross\fR replacement of this script.)
.SH "OPTIONS"
For details, see above.
-.TP
-.B \-\-no-conf, \-\-noconf
+.TP
+.B \-\-no\-conf, \-\-noconf
Do not read any configuration files. This can only be used as the
-first option given on the command-line.
-.TP
-.BI \-\-rootcmd= "gain-root-command, " \-r gain-root-command
+first option given on the command\-line.
+.TP
+.BI \-\-rootcmd= "gain\-root\-command, " \-r gain\-root\-command
Command to gain root (or fake root) privileges.
-.TP
+.TP
.B \-\-preserve\-env
Do not clean the environment, except for PATH.
-.TP
+.TP
.BI \-\-preserve\-envvar= "var, " \-e var
Do not clean the \fIvar\fR variable from the environment.
-.TP
+.TP
.BI \-\-set\-envvar= var = "value, " \-e var = value
Set the environment variable \fIvar\fR to \fIvalue\fR and do not
remove it from the environment.
-.TP
+.TP
+.BI \-\-prepend\-path= path
+Prepend \fIpath\fR to PATH.
+.TP
.B \-\-lintian
-Run \fBlintian\fR after \fBdpkg-buildpackage\fR. This is the default
+Run \fBlintian\fR after \fBdpkg\-buildpackage\fR. This is the default
behaviour, and it overrides any configuration file directive to the
contrary.
-.TP
+.TP
.B \-\-no\-lintian
-Do not run \fBlintian\fR after \fBdpkg-buildpackage\fR.
-.TP
+Do not run \fBlintian\fR after \fBdpkg\-buildpackage\fR.
+.TP
.B \-\-linda
-Run \fBlinda\fR after \fBdpkg-buildpackage\fR.
-.TP
+Run \fBlinda\fR after \fBdpkg\-buildpackage\fR.
+.TP
.B \-\-no\-linda
-Do not run \fBlinda\fR after \fBdpkg-buildpackage\fR. This is the
+Do not run \fBlinda\fR after \fBdpkg\-buildpackage\fR. This is the
default behaviour.
-.TP
+.TP
.B \-\-no\-tgz\-check
-Even if we're running \fBdpkg-buildpackage\fR and the version number
-has a Debian revision, do not check that the .orig.tar.gz file or .orig
+Even if we're running \fBdpkg\-buildpackage\fR and the version number
+has a Debian revision, do not check that the .orig.ta r.gz file or .orig
directory exists before starting the build.
-.TP
+.TP
.B \-\-tgz\-check
-If we're running \fBdpkg-buildpackage\fR and the version number has a
-Debian revision, check that the .orig.tar.gz file or .orig directory
+If we're running \fBdpkg\-buildpackage\fR and the version number has a
+Debian revision, check that the .orig.ta r.gz file or .orig directory
exists before starting the build. This is the default behaviour.
-.TP
+.TP
\fB\-\-\fIfoo\fB\-hook\fR=\fIhook\fR
Set a hook as described above. If \fIhook\fR is blank, this unsets
the hook.
-.TP
+.TP
\fB\-\-clear\-hooks\fR
Clears all hooks. They may be reinstated by later command line
options.
-.TP
-\fB\-\-check-dirname-level\fR \fIN\fR
+.TP
+\fB\-\-check\-dirname\-level\fR \fIN\fR
See the above section "Directory name checking" for an explanation of
this option.
-.TP
-\fB\-\-check-dirname-regex\fR \fIregex\fR
+.TP
+\fB\-\-check\-dirname\-regex\fR \fIregex\fR
See the above section "Directory name checking" for an explanation of
this option.
-.TP
+.TP
\fB\-d\fR
-Do not run \fBdpkg-checkbuilddeps\fR to check build dependencies.
-.TP
+Do not run \fBdpkg\-checkbuilddeps\fR to check build dependencies.
+.TP
\fB\-D\fR
-Run \fBdpkg-checkbuilddeps\fR to check build dependencies.
+Run \fBdpkg\-checkbuilddeps\fR to check build dependencies.
.SH "CONFIGURATION VARIABLES"
The two configuration files \fI/etc/devscripts.conf\fR and
\fI~/.devscripts\fR are sourced by a shell in that order to set
@@ -281,136 +289,136 @@
\fB\-\-no\-conf\fR option can be used to prevent reading these files.
Environment variable settings are ignored when these configuration
files are read. The currently recognised variables are:
-.TP
+.TP
.B DEBUILD_PRESERVE_ENV
If this is set to \fIyes\fR, then it is the same as the
\fB\-\-preserve\-env\fR command line parameter being used.
-.TP
+.TP
.B DEBUILD_PRESERVE_ENVVARS
Which environment variables to preserve. This should be a
-comma-separated list of variables. This corresponds to using possibly
+comma\-separated list of variables. This corresponds to using possibly
multiple \fB\-\-preserve\-envvar\fR or \fB\-e\fR options.
-.TP
+.TP
.BI DEBUILD_SET_ENVVAR_ var = value
This corresponds to \fB\-\-set\-envvar=\fIvar\fB=\fIvalue\fR.
-.TP
+.TP
.B DEBUILD_ROOTCMD
Setting this variable to \fIprog\fR is the equivalent of
\fB\-r\fIprog\fR.
-.TP
+.TP
.B DEBUILD_TGZ_CHECK
Setting this variable to \fIno\fR is the same as the
\fB\-\-no\-tgz\-check\fR command line option.
-.TP
+.TP
.B DEBUILD_DPKG_BUILDPACKAGE_OPTS
These are options which should be passed to the invocation of
-\fBdpkg-buildpackage\fR. They are given before any command-line
+\fBdpkg\-buildpackage\fR. They are given before any command\-line
options. Due to issues of shell quoting, if a word containing spaces
is required as a single option, extra quotes will be required. For
example, to ensure that your own GPG key is always used, even for
sponsored uploads, the config file might contain the line:
-.IP
-.nf
-DEBUILD_DPKG_BUILDPACKAGE_OPTS="-k'Julian Gilbey <[EMAIL PROTECTED]>' -sa"
-.fi
-.IP
+.IP
+.nf
+DEBUILD_DPKG_BUILDPACKAGE_OPTS="\-k'Julian Gilbey <[EMAIL PROTECTED]>' \-sa"
+.fi
+.IP
which gives precisely two options. Without the extra single quotes,
-\fBdpkg-buildpackage\fR would reasonably complain that \fIGilbey\fR is
+\fBdpkg\-buildpackage\fR would reasonably complain that \fIGilbey\fR is
an unrecognised option (it doesn't start with a `\-' sign).
-.IP
+.IP
Also, if this option contains any \fB\-r\fR, \fB\-d\fR or \fB\-D\fR
options, these will always be taken account of by \fBdebuild\fR. Note
that a \fB\-r\fR option in this variable will override the setting in
DEBUILD_ROOTCMD.
-.TP
+.TP
\fBDEBUILD_\fIFOO\fB_HOOK
The hook variable for the \fIfoo\fR hook. See the section on hooks
above for more details. By default, this is empty.
-.TP
+.TP
.B DEBUILD_LINTIAN
Should we run \fBlintian\fR? If this is set to \fIno\fR, then
\fBlintian\fR will not be run.
-.TP
+.TP
.B DEBUILD_LINTIAN_OPTS
These are options which should be passed to the invocation of
-\fBlintian\fR. They are given before any command-line options, and
+\fBlintian\fR. They are given before any command\-line options, and
the usage of this variable is as described for the
\fBDEBUILD_DPKG_BUILDPACKAGE_OPTS\fR variable.
-.TP
+.TP
.B DEBUILD_LINDA
Should we run \fBlinda\fR? If this is set to \fIyes\fR, then
\fBlinda\fR will be run.
-.TP
+.TP
.B DEBUILD_LINDA_OPTS
These are options which should be passed to the invocation of
-\fBlinda\fR. They are given before any command-line options, and
+\fBlinda\fR. They are given before any command\-line options, and
the usage of this variable is as described for the
\fBDEBUILD_DPKG_BUILDPACKAGE_OPTS\fR variable.
-.TP
+.TP
.BR DEVSCRIPTS_CHECK_DIRNAME_LEVEL ", " DEVSCRIPTS_CHECK_DIRNAME_REGEX
See the above section "Directory name checking" for an explanation of
-these variables. Note that these are package-wide configuration
+these variables. Note that these are package\-wide configuration
variables, and will therefore affect all \fBdevscripts\fR scripts
which check their value, as described in their respective manpages and
in \fBdevscripts.conf\fR(5).
-.SH EXAMPLES
+.SH "EXAMPLES"
To build your own package, simply run \fBdebuild\fR from inside the
-source tree. \fBdpkg-buildpackage\fR(1) options may be given on the
+source tree. \fBdpkg\-buildpackage\fR(1) options may be given on the
command line.
-.PP
+.PP
The typical command line options to build only the binary package(s)
-without signing the .changes file (or the non-existent .dsc file):
-.IP
-.nf
-debuild -i -us -uc -b
-.fi
-.PP
-Change the "-b" to "-S" to build only a source package.
-.PP
+without signing the .changes file (or the non\-existent .dsc file):
+.IP
+.nf
+debuild \-i \-us \-uc \-b
+.fi
+.PP
+Change the "\-b" to "\-S" to build only a source package.
+.PP
An example using both \fBlintian\fR and \fBlinda\fR to check the
resulting packages, and also passing options to them both:
-.IP
-.nf
-debuild --linda -i -tc --lintian-opts -i --linda-opts -i
-.fi
-.PP
+.IP
+.nf
+debuild \-\-linda \-i \-tc \-\-lintian\-opts \-i \-\-linda\-opts \-i
+.fi
+.PP
Note the order of options here: the \fBdebuild\fR options come first,
-then the \fBdpkg-buildpackage\fR ones, then finally the checker
+then the \fBdpkg\-buildpackage\fR ones, then finally the checker
options. (And \fBlintian\fR is called by default.) If you find
-yourself using the same \fBdpkg-buildpackage\fR options repeatedly,
+yourself using the same \fBdpkg\-buildpackage\fR options repeatedly,
consider using the DEBUILD_DPKG_BUILDPACKAGE_OPTS configuration file
option as described above.
-.PP
+.PP
To build a package for a sponsored upload, given
-\fIfoobar_1.0-1.dsc\fR and the respective source files, run something
+\fIfoobar_1.0\-1.dsc\fR and the respective source files, run something
like the following commands:
-.IP
-.nf
-dpkg-source -x foobar_1.0-1.dsc
-cd foobar-1.0
-debuild -k0x12345678
-.fi
-.PP
+.IP
+.nf
+dpkg\-source \-x foobar_1.0\-1.dsc
+cd foobar\-1.0
+debuild \-k0x12345678
+.fi
+.PP
where 0x12345678 is replaced by your GPG key ID or other key
identifier such as your email address. Again, you could also use the
DEBUILD_DPKG_BUILDPACKAGE_OPTS configuration file option as described
above to avoid having to type the \fB\-k\fR option each time you do a
sponsored upload.
.SH "SEE ALSO"
-.BR dpkg-buildpackage (1),
-.BR dpkg-checkbuilddeps (1),
+.BR dpkg\-buildpackage (1),
+.BR dpkg\-checkbuilddeps (1),
.BR debsign (1),
.BR fakeroot (1),
.BR lintian (1),
.BR linda (1),
.BR chmod (1),
-.BR dpkg-statoverride (8),
+.BR dpkg\-statoverride (8),
.BR su (1),
.BR sudo (1),
.BR super (1)
and
.BR devscripts.conf (5).
-.SH AUTHOR
+.SH "AUTHOR"
The original \fBdebuild\fR program was written by Christoph Lameter
<[EMAIL PROTECTED]>. The current version has been written by Julian
Gilbey <[EMAIL PROTECTED]>.
--- End Message ---