Provided by: cvs-buildpackage_5.23_all bug

NAME

       cvs-buildpackage - build Debian packages from a CVS repository.

SYNOPSIS

       cvs-buildpackage [options]

DESCRIPTION

       This  manual  page  explains  the  Debian cvs-buildpackage utility, which is used to build
       Debian packages whose sources are stored in a CVS repository. This is a CVS -aware wrapper
       around   dpkg-buildpackage,   and   it   first   parses  ./debian/changelog;  exports  the
       corresponding version (tagged debian_version_<$version> ), and runs  dpkg-buildpackage  in
       the exported tree.  It looks for uncommitted files in the source tree, and offers to abort
       before doing  anything  so  that  the  user  may  commit  the  files  in,  if  they  wish.
       cvs-buildpackage  can  also optionally automatically re-tag all files before exporting the
       source (this functionality is only relevant in the top level directory of  a  checked  out
       Debian package source tree, of course).

       Please  note  that the work directory referred to below is the scratch directory where the
       program does its work; it is where it shall export the sources from CVS,  and  it  assumes
       full  control  of  that  directory  Read:  anything in that directory, apart from the orig
       source files, can be deleted by cvs-buildpackage Make sure not to have  your  checked  out
       sources/working directory in the same location, as you may lose data.

       If  this  utility  is  not  run from a top level directory of a checked out Debian package
       source tree, then to build an old version the cvs module name or the package name have  to
       be supplied on the command line.

       Combined  with  the  companion  utilities  cvs-inject  and  cvs-upgrade,  this provides an
       infrastructure to facilitate the use of CVS by Debian maintainers. This allows one to keep
       separate  CVS  branches  of  a  package  for  stable,  unstable, and possibly experimental
       distributions, along with the other benefits of a version control system.

OPTIONS

       -h Print out a usage message.

       -M<module>
              The name of the CVS module.

       -P<package>
              Sets the name of the package. Very useful if this is not running in the CVS checked
              out source tree, in which case one also needs the version of the package, which may
              optionally be determined by checking out the latest debian/changelog file.

       -V<version>
              The version number of the package. In conjunction with setting  the  package  name,
              this option allows operation outside a CVS source tree (just needs the repository).

       -T<tag>
              The  CVS  tag  to  use for exporting sources, rather than constructing one from the
              version. This assumes you know what you are doing.

       -U<tag>
              The CVS tag to use for the upstream tag, rather  than  constructing  one  from  the
              upstream version. This assumes you know what you are doing.

       -C<Build Command>
              Sets  the  name of the builder program invoked, nominally set to dpkg-buildpackage.
              However, the user may choose to use a different build program,  or  a  wrapper,  or
              even 'chroot /opt/root dpkg-buildpackage' to build the package in a chroot jail, if
              desired. (Obviously, this requires that the Work directory to be a subdirectory  of
              a  previously  set  up chroot jail).  One may also hook in pbuilder by setting this
              variable to 'pdebuild --auto-debsign --buildresult  ../'.   (Again,  this  requires
              that  pbuilder has been set up correctly).  This argument overrides the settings in
              the environment variable CVSDEB_BUILDPACKAGE, and the configuration  file  variable
              conf_buildpackage.

       -G<get method>
              This  option,  if  set,  should  contain  a  command to execute to get the original
              tarball into the current directory. This can then be used to allow one to  get  the
              original   file   using,   for   instance,   wget  or  curl.   This  overrides  the
              CVSDEB_GET_ORIG environment  variable  and  the  conf_get_orig  configuration  file
              option.

       -A     Use  apt-get  source  to  retrive  the original tarball.  This option has no effect
              unless a source package with the correct upstream version has already been uploaded
              and  is  referenced from a Sources file known to apt.  If -A and -G are both given,
              -G is tried first, and apt is used only if that did not produce the tarball.   This
              overrides   the   CVSDEB_USE_APT   environment   variable   and   the  conf_use_apt
              configuration file option.

       -R<root directory>
              Root   of   the   original   sources   archive.   We    expect    to    find    the
              <package name>_<version>.orig.tar.gz   file  under  <root directory>/package name>/
              unless the cvs-buildpackage work directory has been set, or we want to  export  the
              original  sources  from  the vendor branch of the CVS tree. If the cvs-buildpackage
              work directory is set anywhere,  (command  line,  configuration  file,  environment
              variable),  the  root  directory  value  is  ignored,  since  we only need the root
              directory to set defaults for the cvs-buildpackage work  directory.  This  argument
              overrides  the  settings  in  the  environment  variable  CVSDEB_ROOTDIR,  and  the
              configuration file variable conf_rootdir.  Please note  that  the  cvs-buildpackage
              work  directory referred to here is the scratch directory where this program works,
              not the directory that the human uses to work in.  This should probably  not  be  a
              sub dir of CVSROOT, since cvs shall refuse to export packages there, and the script
              shall fail.

       -W<work directory>
              The full path name for the  cvs-buildpackage  working  directory,  into  which  the
              sources  will  be  exported  out  of  CVS  and  which  should  contain the original
              <package name>_<version>.orig.tar.gz Please note that it is not strictly  essential
              to  have  the  original  sources,  as  this script will check out the vendor branch
              version  tagged  as  upstream_version_<version>  (without  the  Debian   revision).
              However,   these  recreated  original  sources  are  likely  to  be  different  for
              consecutive runs of cvs-buildpackage, and very likely  to  be  different  from  the
              pristine original sources (different enough to cause problems with an upload). Thus
              it is strongly advisable  to  keep  the  orig.tar.gz  file  around.   Setting  this
              variable  overrides  the  settings  for  the  root  directory.  This  argument also
              overrides  the  settings  in  the  environment  variable  CVSDEB_WORKDIR,  and  the
              configuration  file  variable  conf_workdir.  Please note that the cvs-buildpackage
              work directory referred to here is the scratch directory where this program  works,
              not  the  directory  that  the  human  uses to work in. Also, you should specify an
              absolute path name for the work directory.  This should probably not be a  sub  dir
              of  CVSROOT,  since cvs shall refuse to export packages there, and the script shall
              fail.

       -F     The Force Tag option. This only has effect if run in the source directory. If  set,
              it forces a cvs tag -F operation to be performed before exporting the sources. This
              argument overrides the settings in the environment  variable  CVSDEB_FORCETAG,  and
              the  configuration file variable conf_forcetag.  The default action is not to force
              a tag before export.

       -E     The Full Export option. Normally, cvs-buildpackage will export all  the  data  from
              CVS  using  cvs  export.   If  the  orig.tar.gz  is  not  available  in the working
              directory, the full tree will be exported  from  CVS  regardless  of  whether  this
              option   is   set   or   not.   This  option  overrides  the  environment  variable
              CVSDEB_FULLEXPORT, and the configuration file variable conf_fullexport.

       -op    The opposite of full export. Using this option resets the  value  of  full  export.
              Normally,  cvs-buildpackage  will  export  all  the data from CVS using cvs export.
              With this option set, cvs-buildpackage will extract the  orig.tar.gz  in  the  cvs-
              buildpackage  working  directory,  and then use the cvs rdiff command to bring that
              tree up-to-date with the CVS tree we're building. Please look at the -f<fix_script>
              option to see how to massage the source tree after extraction and patching.

       -ctp   Include   package_   at   the   start   of   the   CVS  tag.   This  overrides  the
              CVSDEB_PACKAGEINTAG environment variable and the conf_forcetag  configuration  file
              option.  The default is not to include the prefix.

       -n     The  no exec (or dry-run) option, causing cvs-buildpackage to print out all actions
              that would be taken without actually executing them.

       -f<fix_script>
              This option, if set, should point to a script that should be run just from the  top
              level of the source tree to set up permissions of scripts that have been created by
              pathching the sources from an recently extracted original tar file  (the  behaviour
              attained  by  setting the -op option. This script is called with two arguments, the
              package name, and version. This script is only relevant when that option  has  been
              used.  There  a  number  of  variables  that are exported into the environment, for
              example package contains the name of the package,  non_epoch_version  contains  the
              version  of  the  package without the epoch, upstream_version contains the upstream
              version.  debian_version contains the debian revision.   cvstag  contains  the  cvs
              tag, and cvs_upstream_tag contains the tag for the upstream version.

       -H<hook_script>
              This  option,  if  set,  should  point  to  a script that should be run just before
              calling dpkg-buildpackage.  Ideally, things like this are done  using  the  modules
              file  and  programs,  but  is  still  provided here for convenience. This script is
              called with two arguments, the  package  name,  and  version.  There  a  number  of
              variables  that are exported into the environment, for example package contains the
              name of the package, non_epoch_version contains the version of the package  without
              the epoch, upstream_version contains the upstream version.  debian_version contains
              the debian revision.  cvstag contains the cvs tag,  and  cvs_upstream_tag  contains
              the  tag  for  the  upstream  version.  This argument overrides the settings in the
              environment variable CVSDEB_HOOK which in turn over rides  the  configuration  file
              option conf_hook_script.

       -x<prefix>
              This  option  provides  the  CVS  default  module prefix (should really fix the CVS
              modules file). This argument overrides the settings  in  the  environment  variable
              CVSDEB_PREFIX.   Note:  The configuration file variable conf_prefix is not honoured
              by cvs-buildpackage, since the prefix is required to calculate the  variables  that
              are supposed to be defined when we load the config file (chicken and egg problem).

       The rest of the command line arguments are passed on, uninterpreted, to dpkg-buildpackage,
       though we do pay attention to the -r (root command) option (which  gives  the  command  to
       achieve  root  access,  usually  sudo,  fakeroot, or super ).  The -r option overrides the
       other  means  of  setting   the   root   command,   namely,   the   environment   variable
       CVSDEB_ROOTCOMMAND,  which  in turn overrides the config file option conf_rootcommand.  No
       attempt is made to check any other option. Please use the -h option to see  which  of  the
       dpkg-buildpackage options are supported and passed on.

FILES

       Apart  from the runtime options, cvs-buildpackage also looks for site-wide defaults in the
       file /etc/cvsdeb.conf.  After that, it looks for and reads ~/.cvsdeb.conf .   The  default
       configuration allows there to be a site wide override for the root or the cvs-buildpackage
       working directories on the site, but the  cvsdeb.conf  files  are  actually  Bourne  shell
       snippets, and any legal shell directives may be included in there.  Note: Caution is urged
       with this file, since you can totally change the way that the script behaves  by  suitable
       editing this file.

SEE ALSO

       dpkg-buildpackage(1), cvs-inject(1), cvs-upgrade(1), cvsdeb.conf(5), cvs(1).

AUTHOR

       This  manual  page  was  written  Manoj  Srivastava  <srivasta@debian.org>, for the Debian
       GNU/Linux system.