Generic build options
-c
control-file
Specifies the main source control file to read information
from. The default is debian/control
. If given with
relative pathname this is interpreted starting at the
source tree's top level directory.
-l
changelog-file
Specifies the changelog file to read information from. The
default is debian/changelog
. If given with relative
pathname this is interpreted starting at the source tree's
top level directory.
-F
changelog-format
Specifies the format of the changelog. See
dpkg-parsechangelog(1) for information about alternative
formats.
--format=
value
Use the given format for building the source package
(since dpkg 1.14.17). It does override any format given
in debian/source/format
.
-V
name=
value
Set an output substitution variable. See deb-substvars(5)
for a discussion of output substitution.
-T
substvars-file
Read substitution variables in substvars-file; the default
is to not read any file. This option can be used multiple
times to read substitution variables from multiple files
(since dpkg 1.15.6).
-D
field=
value
Override or add an output control file field.
-U
field
Remove an output control file field.
-Z
compression, --compression
=compression
Specify the compression to use for created tarballs and
diff files (--compression
since dpkg 1.15.5). Note that
this option will not cause existing tarballs to be
recompressed, it only affects new files. Supported values
are: gzip, bzip2, lzma and xz. The default is xz for
formats 2.0 and newer, and gzip for format 1.0. xz is only
supported since dpkg 1.15.5.
-z
level, --compression-level
=level
Compression level to use (--compression-level
since dpkg
1.15.5). As with -Z
it only affects newly created files.
Supported values are: 1 to 9, best, and fast. The default
is 9 for gzip and bzip2, 6 for xz and lzma.
-i
[regex], --diff-ignore
[=regex]
You may specify a perl regular expression to match files
you want filtered out of the list of files for the diff
(--diff-ignore
since dpkg 1.15.6). (This list is
generated by a find command.) (If the source package is
being built as a version 3 source package using a VCS,
this can be used to ignore uncommitted changes on specific
files. Using -i.* will ignore all of them.)
The -i
option by itself enables this setting with a
default regex (preserving any modification to the default
regex done by a previous use of --extend-diff-ignore
) that
will filter out control files and directories of the most
common revision control systems, backup and swap files and
Libtool build output directories. There can only be one
active regex, of multiple -i
options only the last one
will take effect.
This is very helpful in cutting out extraneous files that
get included in the diff, e.g. if you maintain your source
in a revision control system and want to use a checkout to
build a source package without including the additional
files and directories that it will usually contain (e.g.
CVS/, .cvsignore, .svn/). The default regex is already
very exhaustive, but if you need to replace it, please
note that by default it can match any part of a path, so
if you want to match the begin of a filename or only full
filenames, you will need to provide the necessary anchors
(e.g. '(^|/)', '($|/)') yourself.
--extend-diff-ignore
=regex
The perl regular expression specified will extend the
default value used by --diff-ignore
and its current value,
if set (since dpkg 1.15.6). It does this by concatenating
'|
regex' to the existing value. This option is convenient
to use in debian/source/options
to exclude some auto-
generated files from the automatic patch generation.
-I
[file-pattern], --tar-ignore
[=file-pattern]
If this option is specified, the pattern will be passed to
tar(1)'s --exclude
option when it is called to generate a
.orig.tar or .tar file (--tar-ignore
since dpkg 1.15.6).
For example, -I
CVS will make tar skip over CVS directories
when generating a .tar.gz file. The option may be repeated
multiple times to list multiple patterns to exclude.
-I
by itself adds default --exclude
options that will
filter out control files and directories of the most
common revision control systems, backup and swap files and
Libtool build output directories.
Note:
While they have similar purposes, -i
and -I
have very
different syntax and semantics. -i
can only be specified once and
takes a perl compatible regular expression which is matched
against the full relative path of each file. -I
can specified
multiple times and takes a filename pattern with shell wildcards.
The pattern is applied to the full relative path but also to each
part of the path individually. The exact semantic of tar's
--exclude
option is somewhat complicated, see
https://www.gnu.org/software/tar/manual/tar.html#wildcards for a
full documentation.
The default regex and patterns for both options can be seen in
the output of the --help
command.
Generic extract options
--no-copy
Do not copy original tarballs near the extracted source
package (since dpkg 1.14.17).
--no-check
Do not check signatures and checksums before unpacking
(since dpkg 1.14.17).
--no-overwrite-dir
Do not overwrite the extraction directory if it already
exists (since dpkg 1.18.8).
--require-valid-signature
Refuse to unpack the source package if it doesn't contain
an OpenPGP signature that can be verified (since dpkg
1.15.0) either with the user's trustedkeys.gpg keyring,
one of the vendor-specific keyrings, or one of the
official Debian keyrings
(/usr/share/keyrings/debian-keyring.gpg and
/usr/share/keyrings/debian-maintainers.gpg).
--require-strong-checksums
Refuse to unpack the source package if it does not contain
any strong checksums (since dpkg 1.18.7). Currently the
only known checksum considered strong is SHA-256
.
--ignore-bad-version
Turns the bad source package version check into a non-
fatal warning (since dpkg 1.17.7). This option should
only be necessary when extracting ancient source packages
with broken versions, just for backwards compatibility.