Man Linux: Main Page and Category List

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).