xenial (1) cvs-buildpackage.1.gz

Provided by: cvs-buildpackage_5.26_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.