dch(1) - phpMan

Command: man perldoc info search(apropos)  


DEBCHANGE(1)                         General Commands Manual                         DEBCHANGE(1)

NAME
       debchange - Tool for maintenance of the debian/changelog file in a source package

SYNOPSIS
       debchange [options] [text ...]
       dch [options] [text ...]

DESCRIPTION
       debchange or its alias dch will add a new comment line to the Debian changelog in the cur-
       rent source tree.  This command must be run from within that tree.  If  the  text  of  the
       change  is  given on the command line, debchange will run in batch mode and simply add the
       text, with line breaks as necessary, at the appropriate place in debian/changelog (or  the
       changelog  specified  by  options,  as described below).  If the text given on the command
       line is a null string, debchange will run in batch mode without adding any text.   If  the
       text given on the command line is a space string, debchange will run in batch mode and add
       a blank changelog entry.  If no text is specified then debchange will run  the  editor  as
       determined by sensible-editor for you to edit the file.  (The environment variables VISUAL
       and EDITOR are used in this order to determine which editor to use.)  Editors which under-
       stand  the +n option for starting the editing on a specified line will use this to move to
       the correct line of the file for editing.  If the editor is  quit  without  modifying  the
       temporary  file,  debchange  will exit without touching the existing changelog.  Note that
       the changelog is assumed to be encoded with the UTF-8 encoding.  If it  is  not,  problems
       may  occur.   Please  see  the iconv(1) manpage to find out how to convert changelogs from
       legacy encodings.  Finally, a changelog or NEWS file can be created from scratch using the
       --create option described below.

       debchange  also  supports automatically producing bug-closing changelog entries, using the
       --closes option.  This will usually query the BTS, the Debian  Bug  Tracking  System  (see
       https://bugs.debian.org/)  to  determine  the title of the bug and the package in which it
       occurs.  This behaviour can be stopped by giving a --noquery option or by setting the con-
       figuration  variable  DEBCHANGE_QUERY_BTS  to no, as described below.  In either case, the
       editor (as described above) will always be invoked to give an opportunity  to  modify  the
       entries, and the changelog will be accepted whether or not modifications are made.  An ex-
       tra changelog entry can be given on the command line in addition to the closes entries.

       At most one of --append, --increment, --edit, --release, and --newversion may be specified
       as  listed  below.  If  no  options  are specified, debchange will use heuristics to guess
       whether or not the package has been successfully released, and behave  as  if  --increment
       had  been specified if the package has been released, or otherwise as if --append has been
       specified.

       Two different sets of heuristics can be used, as controlled by the --release-heuristic op-
       tion  or  the  DEBCHANGE_RELEASE_HEURISTIC  configuration  variable. The default changelog
       heuristic assumes the package has been released unless its changelog  contains  UNRELEASED
       in the distribution field. If this heuristic is enabled then the distribution will default
       to UNRELEASED in new changelog entries, and the --mainttrailer option described below will
       be  automatically  enabled.  This  can be useful if a package can be released by different
       maintainers, or if you do not keep the upload logs. The alternate log heuristic determines
       if  a  package  has  been released by looking for an appropriate dupload(1) or dput(1) log
       file in the parent directory.  A warning will be issued if the log file  is  found  but  a
       successful  upload  is not recorded. This may be because the previous upload was performed
       with a version of dupload prior to 2.1 or because the upload failed.

       If either --increment or --newversion is used, the name and email for the new version will
       be  determined  as  follows.  If the environment variable DEBFULLNAME is set, this will be
       used for the maintainer full name; if not, then NAME will be checked.  If the  environment
       variable  DEBEMAIL  is set, this will be used for the email address.  If this variable has
       the form "name <email>", then the maintainer name will also be taken from here if  neither
       DEBFULLNAME  nor  NAME is set.  If this variable is not set, the same test is performed on
       the environment variable EMAIL.  Next, if the full name has  still  not  been  determined,
       then use getpwuid(3) to determine the name from the password file.  If this fails, use the
       previous changelog entry.  For the email address, if it has not been set from DEBEMAIL  or
       EMAIL,  then  look  in /etc/mailname, then attempt to build it from the username and FQDN,
       otherwise use the email address in the previous changelog entry.  In other words,  it's  a
       good idea to set DEBEMAIL and DEBFULLNAME when using this script.

       Support  is  included  for  changelogs that record changes by multiple co-maintainers of a
       package. If an entry is appended to the current version's entries, and the  maintainer  is
       different  from  the  maintainer  who  is listed as having done the previous entries, then
       lines will be added to the changelog to tell which maintainers made  which  changes.  Cur-
       rently  only one of the several such styles of recording this information is supported, in
       which the name of the maintainer who made a set of changes appears on a  line  before  the
       changes,  inside  square  brackets. This can be switched on and off using the --[no]multi-
       maint option or the DEBCHANGE_MULTIMAINT configuration file option; the default is to  en-
       able it.  Note that if an entry has already been marked in this way, then this option will
       be silently ignored.

       If the directory name of the source tree has the form package-version, then debchange will
       also attempt to rename it if the (upstream) version number changes.  This can be prevented
       by using the --preserve command line or configuration file option as described below.

       If --force-bad-version or --allow-lower-version is used, debchange will not  stop  if  the
       new  version  is  less  than the current one.  This is especially useful while doing back-
       ports.

Directory name checking
       In common with several other scripts in the devscripts package, debchange will  climb  the
       directory tree until it finds a debian/changelog file.  As a safeguard against stray files
       causing potential problems, it will examine the name of the parent directory once it finds
       the  debian/changelog  file,  and check that the directory name corresponds to the package
       name.  Precisely how it does this is controlled by two configuration  file  variables  DE-
       VSCRIPTS_CHECK_DIRNAME_LEVEL  and  DEVSCRIPTS_CHECK_DIRNAME_REGEX, and their corresponding
       command-line options --check-dirname-level and --check-dirname-regex.

       DEVSCRIPTS_CHECK_DIRNAME_LEVEL can take the following values:

       0      Never check the directory name.

       1      Only check the directory name if we have had to change directory in our search  for
              debian/changelog.  This is the default behaviour.

       2      Always check the directory name.

       The directory name is checked by testing whether the current directory name (as determined
       by  pwd(1))  matches  the   regex   given   by   the   configuration   file   option   DE-
       VSCRIPTS_CHECK_DIRNAME_REGEX  or  by  the command line option --check-dirname-regex regex.
       Here regex is a Perl regex (see perlre(3perl)), which will be anchored  at  the  beginning
       and  the  end.   If  regex contains a '/', then it must match the full directory path.  If
       not, then it must match the full directory name.  If regex contains the string  'PACKAGE',
       this  will  be replaced by the source package name, as determined from the changelog.  The
       default value for the regex is: 'PACKAGE(-.+)?', thus matching  directory  names  such  as
       PACKAGE and PACKAGE-version.

       The default changelog to be edited is debian/changelog; however, this can be changed using
       the --changelog or --news options or the CHANGELOG environment variable, as described  be-
       low.

OPTIONS
       --append, -a
              Add a new changelog entry at the end of the current version's entries.

       --increment, -i
              Increment  either the final component of the Debian release number or, if this is a
              native Debian package, the version number.  On Ubuntu or  Tanglu,  this  will  also
              change  the  suffix  from  buildX  to  ubuntu1/tanglu1.  Use -R, --rebuild for a no
              change rebuild increment.  This creates a new  section  at  the  beginning  of  the
              changelog  with appropriate headers and footers.  Also, if this is a new version of
              a native Debian package, the directory name is changed to  reflect  this.   If  DE-
              BCHANGE_RELEASE_HEURISTIC  is  changelog (default) and the current release is UNRE-
              LEASED, this will only change the version of the current changelog stanza.   Other-
              wise, this will create a new changelog stanza with the new version.

       --newversion version, -v version
              This  specifies  the  version number (including the Debian release part) explicitly
              and behaves as the --increment option in other respects.  It will also  change  the
              directory  name  if  the  upstream  version  number  has changed.  If DEBCHANGE_RE-
              LEASE_HEURISTIC is changelog (default) and the current release is UNRELEASED,  this
              will only change the version of the current changelog stanza.  Otherwise, this will
              create a new changelog stanza with the new version.

       --edit, -e
              Edit the changelog in an editor.

       --release, -r
              Finalize the changelog for a release.  Update the changelog timestamp. If the  dis-
              tribution  is  set  to  UNRELEASED, change it to the distribution from the previous
              changelog entry (or another distribution as specified by --distribution).  If there
              are  no previous changelog entries and an explicit distribution has not been speci-
              fied, unstable will be used (or the name of the current  development  release  when
              run under Ubuntu).

       --force-save-on-release
              When  --release  is used, an editor is opened to allow inspection of the changelog.
              The user is required to save the file to accept the modified  changelog,  otherwise
              the original will be kept (default).

       --no-force-save-on-release
              Do not do so. Note that a dummy changelog entry may be supplied in order to achieve
              the same effect - e.g. debchange --release "".  The entry will not be added to  the
              changelog but its presence will suppress the editor.

       --create
              This  will  create  a  new  debian/changelog  file (or NEWS if the --news option is
              used).  You must be in the top-level directory  to  use  this;  no  directory  name
              checking  will  be performed.  The package name and version can either be specified
              using the --package and --newversion options, determined from  the  directory  name
              using  the  --fromdirname  option  or entered manually into the generated changelog
              file.  The maintainer name is determined from the environment if this is  possible,
              and  the distribution is specified either using the --distribution option or in the
              generated changelog file.

       --empty
              When used in combination with --create, suppress the automatic addition of an "ini-
              tial  release"  changelog  entry (so that the next invocation of debchange adds the
              first entry).  Note that this will cause a dpkg-parsechangelog warning on the  next
              invocation due to the lack of changes.

       --package package
              This  specifies  the package name to be used in the new changelog; this may only be
              used in conjunction with the --create, --increment and --newversion options.

       --nmu, -n
              Increment the Debian release number for a non-maintainer upload by either appending
              a  ".1"  to a non-NMU version number (unless the package is Debian native, in which
              case "+nmu1" is appended) or by incrementing an NMU version number, and add an  NMU
              changelog  comment.   This  happens automatically if the packager is neither in the
              Maintainer nor the Uploaders field in debian/control, unless DEBCHANGE_AUTO_NMU  is
              set to no or the --no-auto-nmu option is used.

       --bin-nmu
              Increment  the  Debian  release number for a binary non-maintainer upload by either
              appending a "+b1" to a non-binNMU version number or by incrementing a  binNMU  ver-
              sion number, and add a binNMU changelog comment.

       --qa, -q
              Increment  the  Debian release number for a Debian QA Team upload, and add a QA up-
              load changelog comment.

       --rebuild, -R
              Increment the Debian release number for a no-change rebuild by appending a "build1"
              or by incrementing a rebuild version number.

       --security, -s
              Increment  the  Debian release number for a Debian Security Team non-maintainer up-
              load, and add a Security Team upload changelog comment.

       --lts  Increment the Debian release number for a LTS Security Team non-maintainer  upload,
              and add a LTS Security Team upload changelog comment.

       --team Increment  the  Debian  release  number  for  a  team upload, and add a Team upload
              changelog comment.

       --upstream, -U
              Don't append distro-name1 to the version on a derived distribution.  Increment  the
              Debian version.

       --bpo  Increment  the  Debian  release number for an upload to buster-backports, and add a
              backport upload changelog comment.

       --stable
              Increment the Debian release number for an upload to the current stable release.

       --local, -lsuffix
               Add a suffix to the Debian version number for a local build.

       --force-bad-version, -b
              Force a version number to be less than the current one (e.g., when backporting).

       --allow-lower-version pattern
              Allow a version number to be less than the current one if the new  version  matches
              the specified pattern.

       --force-distribution
              Force  the  provided  distribution to be used, even if it doesn't match the list of
              known distributions (e.g. for unofficial distributions).

       --auto-nmu
              Attempt to automatically determine whether a change to the changelog  represents  a
              Non Maintainer Upload.  This is the default.

       --no-auto-nmu
              Disable automatic NMU detection.  Equivalent to setting DEBCHANGE_AUTO_NMU to no.

       --fromdirname, -d
              This will take the upstream version number from the directory name, which should be
              of the form package-version.  If the upstream version number has increased from the
              most recent changelog entry, then a new entry will be made with version number ver-
              sion-1 (or version if the package is Debian native), with the  same  epoch  as  the
              previous  package version.  If the upstream version number is the same, this option
              will behave in the same way as -i.

       --closes nnnnn[,nnnnn ...]
              Add changelog entries to close the specified bug numbers.  Also invoke  the  editor
              after  adding these entries.  Will generate warnings if the BTS cannot be contacted
              (and --noquery has not been specified), or if there are problems with the  bug  re-
              port located.

       --[no]query
              Should we attempt to query the BTS when generating closes entries?

       --preserve, -p
              Preserve the source tree directory name if the upstream version number (or the ver-
              sion number of a Debian native package) changes.  See also the configuration  vari-
              ables section below.

        --no-preserve, --nopreserve
              Do not preserve the source tree directory name (default).

       --vendor vendor
              Override the distributor ID over the default returned by dpkg-vendor.  This name is
              used for heuristics applied to new package versions and for sanity checking of  the
              target distribution.

       --distribution dist, -D dist
              Use  the specified distribution in the changelog entry being edited, instead of us-
              ing the previous changelog entry's distribution for new  entries  or  the  existing
              value for existing entries.

       --urgency urgency, -u urgency
              Use the specified urgency in the changelog entry being edited, instead of using the
              default "medium" for new entries or the existing value for existing entries.

       --changelog file, -c file
              This will edit the changelog file instead of the standard  debian/changelog.   This
              option  overrides  any  CHANGELOG environment variable setting.  Also, no directory
              traversing or checking will be performed when this option is used.

       --news [newsfile]
              This will edit newsfile (by default, debian/NEWS) instead of the regular changelog.
              Directory  searching will be performed.  The changelog will be examined in order to
              determine the current package version.

       --[no]multimaint
              Should we indicate that parts of a changelog entry  have  been  made  by  different
              maintainers?   Default is yes; see the discussion above and also the DEBCHANGE_MUL-
              TIMAINT configuration file option below.

       --[no]multimaint-merge
              Should all changes made by the same author be merged into the same  changelog  sec-
              tion?   Default  is  no;  see  the  discussion  above and also the DEBCHANGE_MULTI-
              MAINT_MERGE configuration file option below.

       --maintmaint, -m
              Do not modify the maintainer details previously listed in the changelog.   This  is
              useful particularly for sponsors wanting to automatically add a sponsorship message
              without disrupting the other changelog details.  Note that there may be some inter-
              esting  interactions  if multi-maintainer mode is in use; you will probably wish to
              check the changelog manually before uploading it in such cases.

       --controlmaint, -M
              Use maintainer details from the debian/control Maintainer field rather  than  rele-
              vant  environment  variables  (DEBFULLNAME,  DEBEMAIL, etc.).  This option might be
              useful to restore details of the main maintainer in the changelog trailer  after  a
              bogus  edit  (e.g.  when -m was intended but forgot) or when releasing a package in
              the name of the main maintainer (e.g. the team).

       --[no]mainttrailer, -t
              If mainttrailer is set, it will avoid modifying the existing changelog trailer line
              (i.e. the maintainer and date-stamp details), unless used with options that require
              the trailer to be modified (e.g. --create, --release, -i, --qa, etc.)  This  option
              differs from --maintmaint in that it will use multi-maintainer mode if appropriate,
              with the exception of editing the trailer. See also the DEBCHANGE_MAINTTRAILER con-
              figuration file option below.

       --check-dirname-level N
              See the above section "Directory name checking" for an explanation of this option.

       --check-dirname-regex regex
              See the above section "Directory name checking" for an explanation of this option.

       --no-conf, --noconf
              Do  not  read  any  configuration files.  This can only be used as the first option
              given on the command-line.

       --release-heuristic log|changelog
              Controls how debchange determines if a package has  been  released,  when  deciding
              whether to create a new changelog entry or append to an existing changelog entry.

       --help, -h
              Display a help message and exit successfully.

       --version
              Display version and copyright information and exit successfully.

CONFIGURATION VARIABLES
       The two configuration files /etc/devscripts.conf and ~/.devscripts are sourced in that or-
       der to set configuration variables.  Command line options can be used to override configu-
       ration  file  settings.   Environment variable settings are ignored for this purpose.  The
       currently recognised variables are:

       DEBCHANGE_PRESERVE
              If this is set to yes, then it is the same as the --preserve command line parameter
              being used.

       DEBCHANGE_QUERY_BTS
              If  this  is set to no, then it is the same as the --noquery command line parameter
              being used.

       DEVSCRIPTS_CHECK_DIRNAME_LEVEL, DEVSCRIPTS_CHECK_DIRNAME_REGEX
              See the above section "Directory name checking" for an explanation of  these  vari-
              ables.   Note  that these are package-wide configuration variables, and will there-
              fore affect all devscripts scripts which check their value, as described  in  their
              respective manpages and in devscripts.conf(5).

       DEBCHANGE_RELEASE_HEURISTIC
              Controls  how  debchange  determines  if a package has been released, when deciding
              whether to create a new changelog entry or append to an existing  changelog  entry.
              Can be either log or changelog.

       DEBCHANGE_MULTIMAINT
              If  set to no, debchange will not introduce multiple-maintainer distinctions when a
              different maintainer appends an entry to an existing changelog.  See the discussion
              above.  Default is yes.

       DEBCHANGE_MULTIMAINT_MERGE
              If set to yes, when adding changes in multiple-maintainer mode debchange will check
              whether previous changes by the current maintainer exist and add the new changes to
              the existing block rather than creating a new block.  Default is no.

       DEBCHANGE_MAINTTRAILER
              If  this is set to no, then it is the same as the --nomainttrailer command line pa-
              rameter being used.

       DEBCHANGE_TZ
              Use this timezone for changelog entries.  Default is the  user/system  timezone  as
              shown by `date -R` and affected by the environment variable TZ.

       DEBCHANGE_LOWER_VERSION_PATTERN
              If  this  is set, then it is the same as the --allow-lower-version command line pa-
              rameter being used.

       DEBCHANGE_AUTO_NMU
              If this is set to no then debchange will not  attempt  to  automatically  determine
              whether  the  current changelog stanza represents an NMU.  The default is yes.  See
              the discussion of the --nmu option above.

       DEBCHANGE_FORCE_SAVE_ON_RELEASE
              If this is set to no, then it is the same as the --no-force-save-on-release command
              line parameter being used.

       DEBCHANGE_VENDOR
              Use  this vendor instead of the default (dpkg-vendor output).  See --vendor for de-
              tails.

ENVIRONMENT
       DEBEMAIL, EMAIL, DEBFULLNAME, NAME
              See the above description of the use of these environment variables.

       CHANGELOG
              This variable specifies the changelog to edit in place of debian/changelog.  No di-
              rectory  traversal  or checking is performed when this variable is set.  This vari-
              able is overridden by the --changelog command-line setting.

       VISUAL, EDITOR
              These environment variables (in this order) determine the editor used by  sensible-
              editor.

SEE ALSO
       debc(1), debclean(1), dput(1), dupload(1), devscripts.conf(5)

AUTHOR
       The original author was Christoph Lameter <clameter AT debian.org>.  Many substantial changes
       and improvements were made by Julian Gilbey <jdg AT debian.org>.

DEBIAN                                   Debian Utilities                            DEBCHANGE(1)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-04-20 02:12 @3.135.190.232 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!