mercurial-buildpackage(1)
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.origcomp1.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 mercurialport(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.