Provided by: dpatch_2.0.39_all bug

NAME

       dpatch-edit-patch - maintain dpatch patches for a Debian source package

SYNOPSIS

       dpatch-edit-patch [options] command dpatchname [basepatch]

DESCRIPTION

       This  manual  documents  the  dpatch-edit-patch command which maintains dpatch patches for a dpatch-using
       Debian source package.

       dpatch-edit-patch will copy the full tree to a temporary directory for working.

WARNING

       dpatch is deprecated, please switch to the `3.0  (quilt)'  Debian  source  package  format  instead.  See
       http://wiki.debian.org/Projects/DebSrc3.0#FAQ for a short guide on how to do it.

OPTIONS

       dpatch-edit-patch  takes  two forms of arguments; options and commands.  Currently, the only command that
       exists is “patch”, which allows you to create/edit dpatches.   When  no  command  is  given,  “patch”  is
       assumed.

   COMMANDS:
       patch  This  command  requires  one  mandatory  argument, and accepts one optional argument under certain
              circumstances.  The mandatory argument is dpatchname.  This refers to a dpatch,  as  it  would  be
              listed  in  debian/patches/00list.   It  is not necessary for dpatchname to exist prior to running
              dpatch-edit-patch patch dpatchname.

              When dpatchname exists, dpatch-edit-patch will set up a working source tree,  apply  all  dpatches
              listed in debian/patches/00list up to and including dpatchname, and spawn an interactive shell for
              the developer. The developer then edits files in this working tree. When the  developer  is  done,
              they  exit  the  shell.   dpatch-edit-patch  then  updates dpatchname to reflect the changes made.
              Should the developer wish to abort the process from the interactive shell, they  need  only  cause
              the  shell  to  exit with an exit value of 230.  Typically, this is done by exiting the shell with
              the command exit 230.

              Would the developer wish to see the patch one's currently works on without exiting  the  subshell,
              two  environment  variables  are  exported into the subshell to help with this: DPEP_SHELL_REFDIR,
              which is set to the reference directory's full name, and DPEP_SHELL_WORKDIR, which is set  to  the
              subshell's working directory.

              These  two  can  be  used to - for example - generate a diff between the reference version and the
              current tree:

                     diff -urNa $DPEP_SHELL_REFDIR $DPEP_SHELL_WORKDIR

       When dpatchname does not exist, dpatch-edit-patch will assume that a new dpatch  should  be  created.  As
       with  the above scenario, dpatch-edit-patch first creates a working source tree. If the optional argument
       basepatch is supplied, all dpatches in debian/patches/00list  up  to  and  including  basepatch  will  be
       applied  to the working tree.  If basepatch is not supplied, no dpatches are applied to the working tree.
       When   then   developer   exits   the   shell,   dpatch-edit-patch   will    create    dpatchname.     If
       debian/patches/00template does not exist, a hardcoded dpatch header and shell snippet will be used. If it
       exists and is not executable, it will be copied verbatim as the header and shell snippet.

       Its first parameter is the base filename of the to-be-updated or to-be-created dpatch (useful for  adding
       titles to the dpatch header). Its second parameter will be the description of the new patch.

   OPTIONS
       For  the following options, command-line arguments take precedence over environment variables, which take
       precedence    over    configuration    variables.    Configuration    variables     are     read     from
       debian/patches/00dpatch.conf and ~/.dpatch.conf.

       -s, --sourcedir=value
              Directory  containing  unpacked  Debian  source  package.   Configuration  variable conf_sourcedir
              (settable only in ~/.dpatch.conf), environment variable DPEP_SOURCEDIR.  Defaults to  the  current
              working directory.

       -o, --outdir=value
              Directory  where  the  updated  or  newly-created  dpatch  will be placed.  Configuration variable
              conf_outdir (~/.dpatch.conf), environment variable DPEP_OUTDIR. Defaults to ./debian/patches/

       -c, --clean
              Indicate to dpatch-edit-patch that the current work directory can safely be cleaned. If not given,
              dpatch-edit-patch  tries  to preserve partial or complete builds by first copying the current work
              directory to a reference directory before invoking debian/rules clean on the reference  directory.
              If  given,  the  current  directory  is  cleaned and then taken as a reference directory. Use this
              option if your source package is pretty large and no significant work is  destroyed  by  cleaning.
              Configuration variable conf_clean (~/.dpatch.conf), Environment variable DPEP_CLEAN.

       -b, --debianonly[=path]
              Indicate  to dpatch-edit-patch that the current work directory only contains a debian subdirectory
              and that an upstream tarball is to be unpacked in  the  reference  directory  before  copying  the
              current  work  directory  there.  The  optional  argument  is  the  path to the upstream tarball -
              including the tarball name. If no value is given,  dpatch-edit-patch  will  use  the  hook  script
              pointed  to  by  conf_getorigtargz  (~/.dpatch.conf)  or  DPEP_GETORIGTARGZ to obtain the upstream
              tarball. The hook script should take one argument: the destination  directory  where  the  fetched
              archive shall be put.  Configuration variables: conf_debianonly (debian/patches/00dpatch.conf) and
              conf_origtargz (~/.dpatch.conf), Environment Variables DPEP_DEBIANONLY and DPEP_ORIGTARGZ.

       -P, --origtargzpath=path
              When -b is in use, specify the path where upstream tarballs should  be  looked  for.   path  is  a
              colon-separated    list    of    directories.     Configuration    variables:   conf_origtargzpath
              (~/.dpatch.conf), Environment Variables DPEP_ORIGTARGZPATH.

       -r, --rootcmd=value
              Command used to gain  root  privileges  used  to  clean  DPEP_SOURCEDIR.   Configuration  variable
              conf_rootcmd,  environment variable DPEP_ROOTCMD.  Defaults to fakeroot, if installed.  If none of
              the above are specified, and fakeroot is not installed, dpatch-edit-patch will abort.  The  dpatch
              authors strongly recommend the use of fakeroot for this purpose.

       -d, --description=value
              Description used for a newly-created patch.  Configuration variable conf_newdesc (~/.dpatch.conf),
              environment variable DPEP_NEWDESC, defaults to “No description.”

       -k, --keeptemp=value
              Boolean value, either 0 or 1.  Configuration variable conf_keeptemp (~/.dpatch.conf),  environment
              variable   DPEP_KEEPTEMP.   When   set   to   1,  temporary  working  tree  is  not  deleted  when
              dpatch-edit-patch is done.

       -t, --tmpdir=value
              Temporary  directory  within  which  dpatch-edit-patch  will  create  the  working  source   tree.
              Configuration variable conf_tmpdir (~/.dpatch.conf), environment variable DPEP_TMPDIR. Should none
              of the above be set, dpatch-edit-patch will first attempt to use the environment variable  TMPDIR,
              and will fall back to /tmp.

       -p, --stampdir=value
              The  directory dpatch has used for creating patch stamps.  Used for checking if patch to be edited
              is already applied to the working tree.  Configuration  variable  conf_stampdir  (~/.dpatch.conf),
              environment  variable  DPEP_STAMPDIR. Should none of the above be set, dpatch-edit-patch will fall
              back to debian/patched

       -e, --exclude=valuelist
              Space-separated list of file- and directory names that dpatch-edit-patch will exclude  from  being
              copied  and  diffed.   Configuration  variable conf_exclude (~/.dpatch.conf), environment variable
              DPEP_EXCLUDE. Defaults to "CVS .svn .git .arch .hg _darcs .bzr", which might cause you trouble  if
              you use files named like that in your package.

       -O, --diffopts=valuelist
              Extra   options   to   directly   pass   to  diff  as-is.   Configuration  variable  conf_diffopts
              (~/.dpatch.conf), environment variable DPEP_DIFF_OPTIONS. It is empty by default.

       -l, --shell=shell
              Tell dpatch-edit-patch which shell to invoke. Configuration variable conf_shell  (~/.dpatch.conf),
              environment variable DPEP_SHELL, defaulting to $SHELL and the user's default shell.

       -n, --notimestamp
              Tell  dpatch-edit-patch  to  remove  timestamps  from  the  diffs it generates. Can also be set in
              debian/patches/00options, with the DPEP_OMIT_TIMESTAMPS variable.

       -0, --add2list
              add the new patch to 00list file.

       -a, --applyall
              apply all available patches.

EXAMPLES

   Create a new patch to be applied after an existing patch.
       To create a new patch, to be applied after an existing patch 90_ctrlkeyfix:

       $ dpatch-edit-patch patch 95_newupstreamfix 90_ctrlkeyfix
       dpatch-edit-patch: * debian/patches/95_newupstreamfix.dpatch does not exist, it will be created as a new dpatch.
       dpatch-edit-patch: * Cleaning /home/david/temp/sopwith-1.6.0
        ...
       dpatch-edit-patch: * Applying patches
       dpatch-edit-patch: ** Applying patch 90_ctrlkeyfix ... applied cleanly.
       dpatch-edit-patch: * Copying /home/david/temp/sopwith-1.6.0 to work directory.
        ...
       $ editor files
       $ exit 0
       dpatch-edit-patch: * Creating new patch debian/patches/95_newupstreamfix.dpatch
       dpatch-edit-patch: Warning: debian/patches/00template does not exist, using hardcoded default.
       dpatch-edit-patch: debian/patches/95_newupstreamfix.dpatch created.

   Create a new patch not depending on existing patches
       To create a new patch, intended to be applied before any other patches (or  a  new  patch  which  doesn't
       require other patches to be applied first):

       $ dpatch-edit-patch 10_debianstrings
       dpatch-edit-patch: * debian/patches/10_debianstrings.dpatch does not exist, it will be created as a new dpatch.
       dpatch-edit-patch: * Cleaning /home/david/temp/sopwith-1.6.0
        ...
       dpatch-edit-patch: Warning: * No base-patch supplied, not applying any patches.
       dpatch-edit-patch: * Copying /home/david/temp/sopwith-1.6.0 to work directory.
        ...
       $ editor files
       $ exit 0
        ...
       dpatch-edit-patch: * Creating new patch debian/patches/10_debianstrings.dpatch
       dpatch-edit-patch: Warning: debian/patches/00template does not exist, using hardcoded default.
       dpatch-edit-patch: debian/patches/10_debianstrings.dpatch created.

   Edit an existing patch:
       $ dpatch-edit-patch 10_debianstrings
       dpatch-edit-patch: * debian/patches/10_debianstrings.dpatch exists, this patch will be updated.
       dpatch-edit-patch: * Cleaning /home/david/temp/sopwith-1.6.0
        ...
       dpatch-edit-patch: * Applying patches
       dpatch-edit-patch: * Copying /home/david/temp/sopwith-1.6.0 to work directory.
       dpatch-edit-patch: * Applying current 10_debianstrings for editing.
        ...
       $ editor files
       $ exit 0
       dpatch-edit-patch: Updating patch debian/patches/10_debianstrings.dpatch
       dpatch-edit-patch: @DPATCH@ tag found, preserving dpatch header.
       dpatch-edit-patch: debian/patches/10_debianstrings.dpatch updated.

NOTES

       dpatch-edit-patch  uses  the  DEBFULLNAME  environment variable as the author's name. If it is unset, the
       author name will be left blank.

       dpatch-edit-patch determines the author's email address for new patches using the following algorithm:
       1) Should the DEBEMAIL environment variable exist, it is always used.
       2) If the EMAIL environment variable exists, it will be used when DEBEMAIL does not exist.
       3) Should neither of the first two attempts succeed, the email will be constructed using the  login  name
       of the user running dpatch-edit-patch combined with the output of hostname -f.

       When  dpatch-edit-patch  sets  up a reference or a working directory, it dereferences all symlinks in the
       source. That allows relative links to continue working, and allows changes only to a single file and  not
       to  the  linked file and the link target. If you use dpatch-edit-patch on source trees that have symbolic
       links, you might end up with a patch that is unapplyable to the original tree.

FILES

       debian/patches/00dpatch.conf, ~/.dpatch.conf.

SEE ALSO

       dpatch(1), dpatch(7), dpatch.make(7), dpatch-list-patch(1), dpatch-convert-diffgz(1)

       Files in /usr/share/doc/dpatch/

AUTHOR

       This manual page was written by David B Harris  <david@eelf.ddts.net>  and  modified  in  the  course  of
       development  by Gergely Nagy <algernon@debian.org>, Marc Haber <mh+debian-packages@zugschlus.de>, Stefano
       Zacchiroli <zack@debian.org>, and Junichi Uekawa <dancer@debian.org>.