cvs-buildpackage - build Debian packages from a CVS repository.
cvs-buildpackage [options]
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.
-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.
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.
dpkg-buildpackage(1), cvs-inject(1), cvs-upgrade(1), cvsdeb.conf(5), cvs(1).
This manual page was written Manoj Srivastava <[email protected]>, for the Debian GNU/Linux system.
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.