NAME
mercurial-buildpackage - Build a .deb package from source code under
Mercurial control.
SYNOPSIS
mercurial-buildpackage [option] ...
DESCRIPTION
mercurial-buildpackage builds a .deb package from within a Mercurial
repository. The package is built either by use of pbuilder(1) or
in-place, depending on the options.
OPTIONS
--version, -V
Output version and exit.
--verbose, -v
Increase verbosity level. Can be used several times.
--no-check-dependencies, -d
Do not check for missing build dependencies.
--include-source, -s, -sa
Force inclusion of upstream source.
--from-version changelogversion, -f changelogversion
Include all changelog entries from changelogversion.
--configfile pbuilderconfigfile, -c pbuilderconfigfile
Use pbuilder(1) to build package in a chroot(8) specified in
pbuilderconfigfile.
EXAMPLES
mercurial-buildpackage
Silently build a package in-place using debian/rules and
dpkg-genchanges(1). The complete build log will be placed in
../package_version_arch.build.
mercurial-buildpackage -s -f 1.2-3 -c /home/jps/lenny-pbuilderrc
Build a backport package for the Lenny release using pbuilder.
The source and all changelog entries since 1.2-3 are included in
package.
REPOSITORY LAYOUT
Let us assume that your package is called mypack. The package
repository should be created by a regular hg init mypack command.
If mypack is a native package, then your repository will only have the
usual default branch and mercurial-buildpackage will only affect the
.hgtags file when mercurial-tagversion(1) is invoked to tag a release
of mypack.
If mypack is a non-native package, then it will have a number of
upstream tarballs, as specified in dpkg-source(1). Let us assume that
the upstream tarballs are mypack_1.0.orig.tar.gz, mypack_1.0.orig-
comp1.tar.bz2 and mypack_1.0.orig-comp2.tar.gz, and that you therefore
use package format 3.0 (quilt). mercurial-buildpackage will then
maintain the following branches.
mypack A branch containing the source from the main tarball.
comp1 A branch containing the source from the comp1 tarball.
comp2 A branch containing the source from the comp2 tarball.
pristine A branch containing additional information for recreating
pristine upstream tarballs.
upstream The combination of all upstream tarballs, as specified in
dpkg-source(1).
default The branch for mainline package work. It will have all
debian/patches applied and the quilt .pc directory included
as part of the repository.
So each upstream tarball will have its own branch which together with
the pristine branch are used by mercurial-pristinetar(1) to recreate
pristine upstream tarballs.
The upstream branch is used by mercurial-importorig(1) to merge new
upstream versions into the mainline default branch; and by mercurial-
port(1) to make alternative packages of selected upstream versions, for
instance for backporting.
In general, you should leave alone all the branches dealing with
upsteam sources, and only work in the default branch or branches
created by mercurial-port(1) for porting.
OPERATIONAL OUTLINE
In-place building
fakeroot debian/rules clean
dpkg-source -i.hg -b mypack ..
debian/rules build
debian/rules binary
dpkg-genchanges > ../mypack_1.0-2_i386.changes
Chroot building
fakeroot debian/rules clean
dpkg-source -i.hg -b mypack ..
pbuilder --build --configfile ~/etc/sid-pbuilderrc ../mypack_1.0-2.dsc
AUTHOR
Jens Peter Secher <jpsecher@gmail.com>
THANKS
The ideas for this package originates from John Goerzen’s hg-
buildpackage.
SEE ALSO
dpkg-source(1), pbuilder(1), mercurial-importorig(1), mercurial-
importdsc(1), mercurial-tagversion(1), mercurial-pristinetar(1),
mercurial-port(1).