{
    "mode": "man",
    "parameter": "uupdate",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/uupdate/1/json",
    "generated": "2026-06-03T03:33:12Z",
    "synopsis": "uupdate [options] newupstreamarchive [version]\nuupdate [options] --find|-f\nuupdate [options] --patch|-p patchfile",
    "sections": {
        "NAME": {
            "content": "uupdate - upgrade a source code package from an upstream revision\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "uupdate [options] newupstreamarchive [version]\nuupdate [options] --find|-f\nuupdate [options] --patch|-p patchfile\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "uupdate  modifies  an  existing Debian source code archive to reflect an upstream update sup‐\nplied as a patch or from a wholly new source code archive.  The utility needs to  be  invoked\nfrom  the top directory of the old source code directory, and if a relative name is given for\nthe new archive or patch file, it will be looked for first relative to the  execution  direc‐\ntory and then relative to the parent of the source tree.  (For example, if the changelog file\nis /usr/local/src/foo/foo-1.1/debian/changelog, then the archive or patch file will be looked\nfor  relative  to  /usr/local/src/foo.)  Note that the patch file or archive cannot be within\nthe source tree itself.  The full details of what the code does are given below.\n\nCurrently supported source code  file  types  are  .tar.gz,  .tar.bz2,  .tar.Z,  .tgz,  .tar,\n.tar.lzma,  .tar.xz,  .7z and .zip archives.  Also supported are already unpacked source code\narchives; simply give the path of the source code directory.  Supported patch file types  are\ngzip-compressed,  bzip2-compressed,  lzma-compressed,  xz-compressed  and  uncompressed patch\nfiles.  The file types are identified by the file names, so they must use the  standard  suf‐\nfixes.\n\nUsually  uupdate  will  be able to deduce the version number from the source archive name (as\nlong as it only contains digits and periods).  If that fails, you need to specify the version\nnumber  explicitly  (without the Debian release number which will always be initially “1”, or\n“0ubuntu1” on Ubuntu-detected systems).  This can be done with an initial  --upstream-version\nor  -v  option, or in the case of an archive, with a version number after the filename.  (The\nreason for the latter is so that uupdate can be called directly from uscan.)\n\nSince uupdate uses debuild to clean the current archive before trying to apply a patch  file,\nit  accepts  a  --rootcmd or -r option allowing the user to specify a gain-root command to be\nused.  The default is to use fakeroot.\n\nIf an archive is being built, the pristine upstream source  should  be  used  to  create  the\n.orig.tar.gz  file  wherever possible.  This means that MD5 sums or other similar methods can\nbe used to easily compare the upstream source to Debian's copy of the upstream version.  This\nis the default behaviour, and can be switched off using the --no-pristine option below.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "This is a summary of what was explained above.\n\n--no-conf, --noconf\nDo  not read any configuration files.  This can only be used as the first option given\non the command-line.\n\n--upstream-version version, -v version\nSpecify the version number of the upstream package explicitly.\n",
            "subsections": [
                {
                    "name": "--force-bad-version, -b",
                    "content": "Force a version number to be less than the current one (e.g., when backporting).\n\n--rootcmd gain-root-command, -r gain-root-command\nSpecify the command to be used to become root to build the package and is passed  onto\ndebuild(1) if it is specified.\n\n--pristine, -u\nTreat  the  source  as pristine upstream source and symlink to it from <package><ver‐\nsion>.orig.tar.gz whenever possible.  This option has no meaning for patches.  This is\nthe default behaviour.\n",
                    "flag": "-b",
                    "long": "--force-bad-version"
                },
                {
                    "name": "--no-pristine",
                    "content": "Do not attempt to make a <package><version>.orig.tar.gz symlink.\n\n--symlink, -s\nSimply  create  a symlink when moving a new upstream .tar.gz archive to the new <pack‐\nage><version>.orig.tar.gz location.  This is the default behaviour.\n",
                    "long": "--no-pristine"
                },
                {
                    "name": "--no-symlink",
                    "content": "Copy the upstream .tar.gz to the new location instead of making a symlink,  if  <pack‐\nage><version>.orig.tar.gz is missing.  Otherwise, do nothing.\n",
                    "long": "--no-symlink"
                },
                {
                    "name": "--find, -f",
                    "content": "Find     all     upstream     tarballs     in     ../    which    match    <pkg><ver‐\nsion>.orig.tar.{gz|bz2|lzma|xz}            or             <pkg><version>.orig-<compo‐\nnent>.tar.{gz|bz2|lzma|xz}  ;  --upstream-version  required; pristine source required;\nnot valid for --patch; This option uses dpkg-source as the backend to  enable  support\nfor the multiple upstream tarballs and to resolve minor bugs reported previously.  The\nuse of this option is highly recommended.\n",
                    "flag": "-f",
                    "long": "--find"
                },
                {
                    "name": "--verbose",
                    "content": "Give verbose output.\n\n--help, -h\nDisplay a help message and exit successfully.\n",
                    "long": "--verbose"
                },
                {
                    "name": "--version",
                    "content": "Display version and copyright information and exit successfully.\n",
                    "long": "--version"
                }
            ]
        },
        "CONFIGURATION VARIABLES": {
            "content": "The two configuration files /etc/devscripts.conf and ~/.devscripts are sourced in that  order\nto  set  configuration variables.  Command line options can be used to override configuration\nfile settings.  Environment variable settings are ignored for this  purpose.   The  currently\nrecognised variables are:\n\nUUPDATEPRISTINE\nIf  this is set to no, then it is the same as the --no-pristine command line parameter\nbeing used.\n\nUUPDATESYMLINKORIG\nIf this is set to no, then it is the same as the --no-symlink command  line  parameter\nbeing used.\n\nUUPDATEROOTCMD\nThis is equivalent to the --rootcmd option.\n",
            "subsections": []
        },
        "ACTIONS TAKEN ON AN ARCHIVE": {
            "content": "",
            "subsections": [
                {
                    "name": "Figure out new version number",
                    "content": "Unless  an explicit version number is provided, the archive name is analyzed for a se‐\nquence of digits separated by dots.  If something like that is found, it is  taken  to\nbe the new upstream version number.  If not, processing is aborted.\n"
                },
                {
                    "name": "Create the .orig.tar.gz archive",
                    "content": "If  the  --pristine or -u option is specified and the upstream archive is a .tar.gz or\n.tgz archive, then this will be copied directly to <package><version>.orig.tar.gz.\n"
                },
                {
                    "name": "Unpacking",
                    "content": "The archive is unpacked and placed in a directory with the correct name  according  to\nDebian policy: package-upstreamversion.orig.  Processing is aborted if this directory\nalready exists.\n"
                },
                {
                    "name": "Patching",
                    "content": "The .diffs.gz from the current version are applied to the unpackaged archive.  A  non-\nzero  exit  status and warning message will occur if the patches did not apply cleanly\nor if no patch file was found.  Also, the list of rejected patches will be shown.  The\nfile  debian/rules  is made executable and all of the .orig files created by patch are\ndeleted.\n"
                },
                {
                    "name": "Changelog update",
                    "content": "A changelog entry with the new version number is generated with the text “New upstream\nrelease.”.\n\nWhen  used on Ubuntu systems, dpkg-vendor detection is used to set the Debian revision\nto “0ubuntu1”.  You may change debian/changelog manually afterwards.\n"
                }
            ]
        },
        "ACTIONS TAKEN ON A PATCH FILE": {
            "content": "",
            "subsections": [
                {
                    "name": "Figure out new version number",
                    "content": "Unless an explicit version number is provided, the patch file name is analyzed  for  a\nsequence of digits separated by dots.  If something like that is found, it is taken to\nbe the new upstream version number.  If not, processing is aborted.\n"
                },
                {
                    "name": "Clean the current source tree",
                    "content": "The command debuild clean is executed within the  current  Debian  source  archive  to\nclean it.  If a -r option is given to uupdate, it is passed on to debuild.\n"
                },
                {
                    "name": "Patching",
                    "content": "The  current  source  archive  (.orig.tar.gz) is unpacked and the patch applied to the\noriginal sources.  If this is successful, then the .orig directory is renamed  to  re‐\nflect  the  new  version number and the current Debian source directory is copied to a\ndirectory with the new version number, otherwise processing is aborted.  The patch  is\nthen applied to the new copy of the Debian source directory.  The file debian/rules is\nmade executable and all of the .orig files created by patch are deleted.  If there was\na  problem with the patching, a warning is issued and the program will eventually exit\nwith non-zero exit status.\n"
                },
                {
                    "name": "Changelog update",
                    "content": "A changelog entry with the new version number is generated with the text “New upstream\nrelease.”.\n\nWhen  used on Ubuntu systems, dpkg-vendor detection is used to set the Debian revision\nto “0ubuntu1”.  You may change debian/changelog manually afterwards.\n"
                }
            ]
        },
        "SEE ALSO": {
            "content": "debuild(1), fakeroot(1), patch(1), devscripts.conf(5)\n",
            "subsections": [
                {
                    "name": "The Debian Policy Manual",
                    "content": ""
                }
            ]
        },
        "AUTHOR": {
            "content": "The original version of uupdate was written by Christoph Lameter <clameter@debian.org>.  Sev‐\neral changes and improvements have been made by Julian Gilbey <jdg@debian.org>.\n\n\n\nDEBIAN                                    Debian Utilities                                UUPDATE(1)",
            "subsections": []
        }
    },
    "summary": "uupdate - upgrade a source code package from an upstream revision",
    "flags": [
        {
            "flag": "-b",
            "long": "--force-bad-version",
            "arg": null,
            "description": "Force a version number to be less than the current one (e.g., when backporting). --rootcmd gain-root-command, -r gain-root-command Specify the command to be used to become root to build the package and is passed onto debuild(1) if it is specified. --pristine, -u Treat the source as pristine upstream source and symlink to it from <package><ver‐ sion>.orig.tar.gz whenever possible. This option has no meaning for patches. This is the default behaviour."
        },
        {
            "flag": "",
            "long": "--no-pristine",
            "arg": null,
            "description": "Do not attempt to make a <package><version>.orig.tar.gz symlink. --symlink, -s Simply create a symlink when moving a new upstream .tar.gz archive to the new <pack‐ age><version>.orig.tar.gz location. This is the default behaviour."
        },
        {
            "flag": "",
            "long": "--no-symlink",
            "arg": null,
            "description": "Copy the upstream .tar.gz to the new location instead of making a symlink, if <pack‐ age><version>.orig.tar.gz is missing. Otherwise, do nothing."
        },
        {
            "flag": "-f",
            "long": "--find",
            "arg": null,
            "description": "Find all upstream tarballs in ../ which match <pkg><ver‐ sion>.orig.tar.{gz|bz2|lzma|xz} or <pkg><version>.orig-<compo‐ nent>.tar.{gz|bz2|lzma|xz} ; --upstream-version required; pristine source required; not valid for --patch; This option uses dpkg-source as the backend to enable support for the multiple upstream tarballs and to resolve minor bugs reported previously. The use of this option is highly recommended."
        },
        {
            "flag": "",
            "long": "--verbose",
            "arg": null,
            "description": "Give verbose output. --help, -h Display a help message and exit successfully."
        },
        {
            "flag": "",
            "long": "--version",
            "arg": null,
            "description": "Display version and copyright information and exit successfully."
        }
    ],
    "examples": [],
    "see_also": [
        {
            "name": "debuild",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/debuild/1/json"
        },
        {
            "name": "fakeroot",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/fakeroot/1/json"
        },
        {
            "name": "patch",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/patch/1/json"
        },
        {
            "name": "devscripts.conf",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/devscripts.conf/5/json"
        }
    ]
}