Provided by: svn-buildpackage_0.6.23ubuntu1_all
svn-buildpackage - build Debian packages from SVN repository
svn-buildpackage [ OPTIONS... ] [ OPTIONS for dpkg-buildpackage ]
Builds a Debian package from a Subversion repository. The source
code repository must be in the format created by svn-inject, and this
script must be executed from the working directory (trunk/package).
By default, the working directory is used as the main source directory
(assuming the whole upstream source is being stored in the repository).
The alternative is so called "merge mode". With this method, only
the debian directory (and maybe some other modified files) are stored
in the repository. At build time, the contents of the svn trunk are
copied to the extracted tarball contents (and can overwrite parts of
it). To choose this working model, set the svn property
mergeWithUpstream on the Debian directory ("svn propset
mergeWithUpstream 1 debian").
The default behaviour is as follows:
Check the working directory, complain on uncommited files (also see
Copy the orig tarball to the build area if necessary (also see --svn-
Extract the tarball (in merge mode) or export the svn work directory to
the build directory (also see below and --svn-no-links)
Build with dpkg-buildpackage (also see --svn-builder, --svn-lintian,
Create a changelog entry for the future version
svn-buildpackage accepts the following options on the command-line:
[ --svn-builder=COMMAND ]
Specifies alternative build command instead of dpkg-
buildpackage, eg. debuild, pdebuild, etc. Every parameters that
svn-buildpackage doesn’t know (--svn-*) are passed to COMMAND.
There is no difference between the command line and config file
parameters . They are used at the same time.
WARNING: shell quotation rules do not completely apply here,
better use wrappers for complex constructs. Using this option
may break --svn-lintian, --svn-linda and --svn-move
functionality. Some functions may be disabled when a custom
build command is used because the output file location is not
[ --svn-ignore-new | --svn-ignore ]
Don’t stop on svn conflicts or new/changed files. To set this
behaviour for single files set the "deb:ignoreM" property to 1
on them. Also see documentation of the svn:ignore property in
the SVN book.
[ --svn-dont-clean ]
Don’t run debian/rules clean (default: clean first)
[ --svn-no-links ]
Don’t use file links but try to export or do hard copies of the
working directory (default: use links where possible). This is
useful if your package fails to build because some files, empty
directories, broken links, ... cannot not be transported with
in the default link-copy mode.
[ --svn-dont-purge ]
Don’t remove the build directory when the build is done.
(Default: remove after successful build)
[ --svn-reuse ]
If possible, reuse an existing build directory in subsequent
builds. The build directory is not purged after the build, it is
not renamed when a build starts and the files are just copied
over into it. Useful in mergeWithUpstream mode with large
[ --svn-rm-prev-dir ]
If a previous build directory is found, remove it before
building instead of renaming it. if --svn-reuse is also given in
the same line, the reuse behaviour occurs.
[ --svn-export ]
Just export the working directory and do neccessary code merge
operations, then exit.
[ --svn-tag ]
Final build: Tag, export, build cleanly & make new changelog
[ --svn-tag-only | --svn-only-tag ]
Don’t build the package, do only the tag copy
[ --svn-retag ]
If an existing target directory has been found while trying to
create the tag copy, remove the target directory first.
[ --svn-noautodch ]
No new Debian changelog entry is added automatically.
[ --svn-lintian | --svn-linda ]
Run lintian or linda on the resulting changes file when done.
[ --svn-move ]
When done, move the created files (as listed in .changes) to the
parent directory, relative to the one where svn-buildpackage was
[ --svn-move-to=... ]
Specifies the target directory to move generated files to.
[ --svn-pkg=packagename ]
Overrides the detected package name. Use with caution since it
could be set too late during the processing (eg. still have the
old value when expanding shell variables).
[ --svn-override=var=value,anothervar=value ]
Overrides any config variable that has been autodetected or
found in .svn/deb-layout.
[ --svn-prebuild | --svn-postbuild | --svn-pretag | --svn-
Commands (hooks) to be executed before/after the build/tag
command invocations, e.g. to download the orig tarballs from the
archive. Shell code can be emdded here though it is not
recommended. Various helping variables are available in the
environment, see ENVIRONMENT VARIABLES below for detailed
[ --svn-noninteractive ]
With this parameter svn-buildpackage will not interact with the
[ --svn-savecfg ]
By default, svn-buildpackage used to create .svn/deb-layout on
every invocation. Since version 0.6.22 this behaviour is
With this parameter svn-buildpackage will (partly) replicate the
old behaviour. In contrast to the deprecated behaviour, the
.svn/deb-layout is regarded as a local override; the old
behaviour simply ignored any versioned layout information if it
This option was provided since it can be useful when creating a
local override file.
[ --svn-verbose ]
More verbose program output
[ -h | --help ]
Show the help message
svn-buildpackage’s behaviour can be modified using the file ~/.svn-
buildpackage.conf. Additional parts can be added in each package
working directory using the file .svn/svn-buildpackage.conf. It is
essentially a list of the long command line options (without leading
minus signs), one argument per line (without quotes surrounding multi-
word arguments). The variables are expanded with the system shell if
shell variables are found there. Avoid ~ sign because of unreliable
expansion: it is better to use $HOME instead. Example:
DIRECTORY LAYOUT HANDLING
By default, svn-buildpackage expects a configuration file with path/url
declaration, .svn/deb-layout. The values there can be overridden with
the --svn-override option, see above. If a config file could not be
found, the settings are autodetected following the usual assumptions
about local directories and repository layout. In addition, the
contents of a custom file debian/svn-deblayout will be imported during
the initial configuration. Package maintainers can store this file in
the repository to pass correct defaults to new svn-buildpackage users.
The format is the same as in the file .svn/deb-layout. As an
alternative to the debian/svn-deblayout file, maintainers can set
Subversion properties for the debian/ directory; any properties of
debian/ which have a name of the form svn-bp:PROP will be the source of
a PROP setting which has the value indicated by the first line of the
The following environment variables are exported by svn-buildpackage
and can be used in hook commands or the package build system.
The source package name
Version of svn-buildpackage
The complete Debian version string, also used for the tag copy
Same as debian_version but without any epoch strings
Same as debian_version but without Debian extensions
Guessed upstream source package name in the pool, something like
(experimental) shows the location of generated diff file
All the layout properties are exported to the environment, too. The
following ones have meaning to svn-buildpackage.
the location of build area directory
the URL of the trunk directory for the current package.
the URL of the tags base directory for the current package.
the local directory where the orig tarball should be located.
the URL from where the orig tarball for the current package can
be pulled from.
The following variables are understood by svn-buildpackage:
Ignore the signs of an incomplete changelog and tag the
Export upstream source from the repository even if
mergeWithUpstream property is set
If DEBIAN_FRONTEND is set to ’noninteractive’ --svn-
noninteractive is called silently
Use shell aliases. Here are some examples for Bash:
alias svn-b="svn-buildpackage -us -uc -rfakeroot --svn-ignore"; alias svn-br="svn-b --svn-dont-purge --svn-reuse"; alias svn-bt="svn-buildpackage --svn-tag -rfakeroot";
Those commands have respective meanings: build regardless of new or
changed files; build regardless of new or changed files and reuse the
build directory; build (for upload) and tag.
SSH is the easiest way to access remote repositories, although it
usually requires entering a password more frequently with svn-
buildpackage. Workarounds include using an ssh key without a
passphrase (although this is insecure and still relatively slow), or
the SSH connection caching feature present in recent versions of SSH.
For details, see the svn-buildpackage manual.
Another way to get a remote link is using the Subversion DAV module
(with SSL and Apache user authentication), see the svn-buildpackage
HOWTO manual for details.
The svn-buildpackage HOWTO manual
puts a Debian source package into Subversion repository
upgrade source package from a new upstream revision
Subversion command line client tool
Debian source package tools
Debian package checker
svn-buildpackage was written by Eduard Bloch with contributions from
others. You can contact the current maintainers by joining the IRC
channel #debian-svn-bp on the OFTC network (via irc.debian.org).
This manual page was written by Eduard Bloch in roff and converted to
SGML by Goneri Le Bouder.
22 April 2008 SVN-BUILDPACKAGE(1)