| .\" Authors: Ian Jackson, Raphaƫl Hertzog |
| .TH dpkg\-source 1 "2011-08-14" "Debian Project" "dpkg utilities" |
| .SH NAME |
| dpkg\-source \- Debian source package (.dsc) manipulation tool |
| . |
| .SH SYNOPSIS |
| .B dpkg\-source |
| .RI [ option "...] " command |
| . |
| .SH DESCRIPTION |
| .B dpkg\-source |
| packs and unpacks Debian source archives. |
| |
| None of these commands allow multiple options to be combined into one, |
| and they do not allow the value for an option to be specified in a |
| separate argument. |
| . |
| .SH COMMANDS |
| .TP |
| .BI "\-x " filename ".dsc " \fR[\fPoutput-directory\fR]\fP |
| Extract a source package. One non-option argument must be supplied, |
| the name of the Debian source control file |
| .RB ( .dsc ). |
| An optional second non-option argument may be supplied to specify the |
| directory to extract the source package to, this must not exist. If |
| no output directory is specified, the source package is extracted into |
| a directory named \fIsource\fR-\fIversion\fR under the current working |
| directory. |
| |
| .B dpkg\-source |
| will read the names of the other file(s) making up the source package |
| from the control file; they are assumed to be in the same directory as |
| the |
| .BR .dsc . |
| |
| The files in the extracted package will have their permissions and |
| ownerships set to those which would have been expected if the files |
| and directories had simply been created - directories and executable |
| files will be 0777 and plain files will be 0666, both modified by the |
| extractors' umask; if the parent directory is setgid then the |
| extracted directories will be too, and all the files and directories |
| will inherit its group ownership. |
| |
| If the source package uses a non-standard format (currently this means all |
| formats except "1.0"), its name will be stored in |
| \fBdebian/source/format\fP so that the following builds of the source |
| package use the same format by default. |
| |
| .TP |
| .RI "\fB\-b\fP " directory " [" format-specific-parameters ] |
| Build a source package. The first non-option argument is taken as the |
| name of the directory containing the debianized source tree (i.e. with a |
| debian sub-directory and maybe changes to the original files). |
| Depending on the source package format used to build the package, |
| additional parameters might be accepted. |
| |
| \fBdpkg\-source\fP will build the source package with the first format |
| found in this ordered list: |
| the format indicated with the \fI\-\-format\fP command line option, |
| the format indicated in \fBdebian/source/format\fP, |
| "1.0". The fallback to "1.0" is deprecated and will be removed at some |
| point in the future, you should always document the desired source format |
| in \fBdebian/source/format\fP. See section \fBSOURCE PACKAGE FORMATS\fP |
| for an extensive description of the various source package formats. |
| |
| .TP |
| .RI "\fB\-\-print\-format\fP " directory |
| Print the source format that would be used to build the source package if |
| \fBdpkg\-source \-b \fIdirectory\fR was called (in the same conditions and |
| with the same parameters). |
| |
| .TP |
| .RI "\fB\-\-before\-build\fP " directory |
| Run the corresponding hook of the source package format. This hook is |
| called before any build of the package (\fBdpkg\-buildpackage\fP calls it |
| very early even before \fBdebian/rules clean\fP). This command is |
| idempotent and can be called multiple times. Not all source formats |
| implement something in this hook, and those that do usually prepare the |
| source tree for the build for example by ensuring that the Debian patches |
| are applied. |
| |
| .TP |
| .RI "\fB\-\-after\-build\fP " directory |
| Run the corresponding hook of the source package format. This hook is |
| called after any build of the package (\fBdpkg\-buildpackage\fP calls it |
| last). This command is idempotent and can be called multiple times. Not |
| all source formats implement something in this hook, and those that do |
| usually use it to undo what \fB\-\-before\-build\fP has done. |
| |
| .TP |
| .RI "\fB\-\-commit\fP [" directory "] ..." |
| Record changes in the source tree unpacked in \fIdirectory\fP. This |
| command can take supplementary parameters depending on the source format. |
| It will error out for formats where this operation doesn't mean anything. |
| |
| .TP |
| .BR \-h ", " \-\-help |
| Show the usage message and exit. |
| .TP |
| .BR \-\-version |
| Show the version and exit. |
| . |
| .SH GENERIC BUILD OPTIONS |
| .TP |
| .BI \-c controlfile |
| Specifies the main source control file to read information from. The |
| default is |
| .BR debian/control . |
| If given with relative pathname this is interpreted starting at |
| the source tree's top level directory. |
| .TP |
| .BI \-l changelogfile |
| Specifies the change log file to read information from. The |
| default is |
| .BR debian/changelog . |
| If given with relative pathname this is interpreted starting at |
| the source tree's top level directory. |
| .TP |
| .BI \-F changelogformat |
| Specifies the format of the changelog. By default the format is read |
| from a special line near the bottom of the changelog or failing that |
| defaults to the debian standard format. |
| .TP |
| .BI \-\-format= value |
| Use the given format for building the source package. It does |
| override any format given in \fBdebian/source/format\fP. |
| .TP |
| .BI \-V name = value |
| Set an output substitution variable. |
| See \fBdeb\-substvars\fP(5) for a discussion of output substitution. |
| .TP |
| .BI \-T substvarsfile |
| Read substitution variables in |
| .IR substvarsfile ; |
| the default is to not read any file. This option can be used multiple |
| times to read substitution variables from multiple files. |
| .TP |
| .BI \-D field = value |
| Override or add an output control file field. |
| .TP |
| .BI \-U field |
| Remove an output control file field. |
| .TP |
| .BR \-Z "\fIcompression\fP, " \-\-compression =\fIcompression\fP |
| Specify the compression to use for created files (tarballs and diffs). |
| Note that this option will not cause existing tarballs to be recompressed, |
| it only affects new files. Supported values are: |
| .IR gzip ", " bzip2 ", " lzma " and " xz . |
| \fIgzip\fP is the default. \fIxz\fP is only supported since |
| dpkg\-dev 1.15.5. |
| .TP |
| .BR \-z "\fIlevel\fP, " \-\-compression\-level =\fIlevel\fP |
| Compression level to use. As with \fB\-Z\fP it only affects newly created |
| files. Supported values are: |
| .IR 1 " to " 9 ", " best ", and " fast . |
| The default is \fI9\fP for gzip and bzip2, \fI6\fP for xz and lzma. |
| .TP |
| .BR \-i "[\fIregexp\fP], " \-\-diff\-ignore [=\fIregexp\fP] |
| You may specify a perl regular expression to match files you want |
| filtered out of the list of files for the diff. (This list is |
| generated by a find command.) (If the source package is being built as a |
| version 3 source package using a VCS, this can be used to ignore |
| uncommited changes on specific files. Using \-i.* will ignore all of them.) |
| \fB\-i\fP by itself enables the option, with a default regexp that will |
| filter out control files and directories of the most common revision |
| control systems, backup and swap files and Libtool build output |
| directories. There can only be one active regexp, of multiple |
| \fB\-i\fP options only the last one will take effect. |
| |
| This is very helpful in cutting out extraneous files that get included |
| in the diff, e.g. if you maintain your source in a revision control |
| system and want to use a checkout to build a source package without |
| including the additional files and directories that it will usually |
| contain (e.g. CVS/, .cvsignore, .svn/). The default regexp is already |
| very exhaustive, but if you need to replace it, please note that by |
| default it can match any part of a path, so if you want to match the |
| begin of a filename or only full filenames, you will need to provide |
| the necessary anchors (e.g. '(^|/)', '($|/)') yourself. |
| .TP |
| .BR \-\-extend\-diff\-ignore =\fIregexp\fP |
| The perl regular expression specified will extend the default value |
| of \fB\-\-diff\-ignore\fP and its current value (if set). It does this |
| by concatenating "\fB|\fP\fIregexp\fP" to the existing value. |
| This option is convenient to use in \fBdebian/source/options\fP to exclude |
| some auto-generated files from the automatic patch generation. |
| .TP |
| .BR \-I "[\fIfile-pattern\fP], " \-\-tar\-ignore [=\fIfile-pattern\fP] |
| If this option is specified, the pattern will be passed to |
| .BR tar (1)'s |
| \-\-exclude |
| option when it is called to generate a .orig.tar or .tar file. For |
| example, \-ICVS will make tar skip over CVS directories when generating |
| a .tar.gz file. The option may be repeated multiple times to list multiple |
| patterns to exclude. |
| |
| \fB\-I\fP by itself adds default \-\-exclude options that will |
| filter out control files and directories of the most common revision |
| control systems, backup and swap files and Libtool build output |
| directories. |
| .PP |
| .B Note: |
| While they have similar purposes, \fB\-i\fP and \fB\-I\fP have very |
| different syntax and semantics. \fB\-i\fP can only be specified once and |
| takes a perl compatible regular expression which is matched against |
| the full relative path of each file. \fB\-I\fP can specified |
| multiple times and takes a filename pattern with shell wildcards. |
| The pattern is applied to the full relative path but also |
| to each part of the path individually. The exact semantic of tar's |
| \-\-exclude option is somewhat complicated, see |
| http://www.gnu.org/software/tar/manual/tar.html#wildcards for a full |
| documentation. |
| |
| The default regexp and patterns for both options can be seen |
| in the output of the \fB\-\-help\fP command. |
| .SH GENERIC EXTRACT OPTIONS |
| .TP |
| .BI \-\-no\-copy |
| Do not copy original tarballs near the extracted source package. |
| .TP |
| .BI \-\-no\-check |
| Do not check signatures and checksums before unpacking. |
| .TP |
| .BI \-\-require\-valid\-signature |
| Refuse to unpack the source package if it doesn't contain an OpenPGP |
| signature that can be verified either with the user's |
| \fItrustedkeys.gpg\fP keyring, one of the vendor-specific keyrings, or one |
| of the official Debian keyrings |
| (\fI/usr/share/keyrings/debian\-keyring.gpg\fP |
| and \fI/usr/share/keyrings/debian\-maintainers.gpg\fP). |
| |
| .SH SOURCE PACKAGE FORMATS |
| If you don't know what source format to use, you should probably pick |
| either "3.0 (quilt)" or "3.0 (native)". See |
| http://wiki.debian.org/Projects/DebSrc3.0 for information on the |
| deployment of those formats within Debian. |
| |
| .SS Format: 1.0 |
| A source package in this format consists either of a \fB.orig.tar.gz\fP |
| associated to a \fB.diff.gz\fP or a single \fB.tar.gz\fP (in that case |
| the package is said to be \fInative\fP). |
| |
| .B Extracting |
| |
| Extracting a native package is a simple extraction of the single |
| tarball in the target directory. Extracting a non-native package |
| is done by first unpacking the \fB.orig.tar.gz\fP and then applying |
| the patch contained in the \fB.diff.gz\fP file. The timestamp of |
| all patched files is reset to the extraction time of the source |
| package (this avoids timestamp skews leading to problems when |
| autogenerated files are patched). The diff can create new files (the whole |
| debian directory is created that way) but can't remove files (empty files |
| will be left over). |
| |
| .B Building |
| |
| Building a native package is just creating a single tarball with |
| the source directory. Building a non-native package involves |
| extracting the original tarball in a separate ".orig" directory and |
| regenerating the \fB.diff.gz\fP by comparing the source package |
| \fIdirectory\fP with the .orig directory. |
| |
| .TP |
| .B Build options (with \-b): |
| .PP |
| If a second non-option argument is supplied it should be the name of the |
| original source directory or tarfile or the empty string if the package is |
| a Debian-specific one and so has no Debianisation diffs. If no second |
| argument is supplied then |
| .B dpkg\-source |
| will look for the original source tarfile |
| .IB package _ upstream-version .orig.tar.gz |
| or the original source directory |
| .IB directory .orig |
| depending on the \fB\-sX\fP arguments. |
| |
| .BR \-sa ", " \-sp ", " \-sk ", " \-su " and " \-sr |
| will not overwrite existing tarfiles or directories. If this is |
| desired then |
| .BR \-sA ", " \-sP ", " \-sK ", " \-sU " and " \-sR |
| should be used instead. |
| .TP |
| .BR \-sk |
| Specifies to expect the original source as a tarfile, by default |
| .IB package _ upstream-version .orig.tar. extension \fR. |
| It will leave this original source in place as a tarfile, or copy it |
| to the current directory if it isn't already there. The |
| tarball will be unpacked into |
| .IB directory .orig |
| for the generation of the diff. |
| .TP |
| .B \-sp |
| Like |
| .B \-sk |
| but will remove the directory again afterwards. |
| .TP |
| .B \-su |
| Specifies that the original source is expected as a directory, by |
| default |
| .IB package - upstream-version .orig |
| and |
| .B dpkg\-source |
| will create a new original source archive from it. |
| .TP |
| .B \-sr |
| Like |
| .B \-su |
| but will remove that directory after it has been used. |
| .TP |
| .B \-ss |
| Specifies that the original source is available both as a directory |
| and as a tarfile. dpkg\-source will use the directory to create the diff, but |
| the tarfile to create the |
| .BR .dsc . |
| This option must be used with care - if the directory and tarfile do |
| not match a bad source archive will be generated. |
| .TP |
| .B \-sn |
| Specifies to not look for any original source, and to not generate a diff. |
| The second argument, if supplied, must be the empty string. This is |
| used for Debian-specific packages which do not have a separate |
| upstream source and therefore have no debianisation diffs. |
| .TP |
| .BR \-sa " or " \-sA |
| Specifies to look for the original source archive as a tarfile or as a |
| directory - the second argument, if any, may be either, or the empty |
| string (this is equivalent to using |
| .BR \-sn ). |
| If a tarfile is found it will unpack it to create the diff and remove |
| it afterwards (this is equivalent to |
| .BR \-sp ); |
| if a directory is found it will pack it to create the original source |
| and remove it afterwards (this is equivalent to |
| .BR \-sr ); |
| if neither is found it will assume that the package has no |
| debianisation diffs, only a straightforward source archive (this is |
| equivalent to |
| .BR \-sn ). |
| If both are found then \fBdpkg\-source\fP will ignore the directory, |
| overwriting it, if |
| .B \-sA |
| was specified (this is equivalent to |
| .BR \-sP ) |
| or raise an error if |
| .B \-sa |
| was specified. |
| .B \-sA |
| is the default. |
| .TP |
| .B \-\-abort\-on\-upstream\-changes |
| The process fails if the generated diff contains changes to files |
| outside of the debian sub-directory. This option is not allowed in |
| \fBdebian/source/options\fP but can be used in |
| \fBdebian/source/local\-options\fP. |
| |
| .TP |
| .B Extract options (with \-x): |
| .PP |
| In all cases any existing original source tree will be removed. |
| .TP |
| .B \-sp |
| Used when extracting then the original source (if any) will be left |
| as a tarfile. If it is not already located in the current directory |
| or if an existing but different file is there it will be copied there. |
| (\fBThis is the default\fP). |
| .TP |
| .B \-su |
| Unpacks the original source tree. |
| .TP |
| .B \-sn |
| Ensures that the original source is neither copied to the current |
| directory nor unpacked. Any original source tree that was in the |
| current directory is still removed. |
| .PP |
| All the |
| .BI \-s X |
| options are mutually exclusive. If you specify more than one only the |
| last one will be used. |
| .TP |
| .B \-\-skip\-debianization |
| Skips application of the debian diff on top of the upstream sources. |
| . |
| .SS Format: 2.0 |
| Also known as wig&pen. This format is not recommended for wide-spread |
| usage, the format "3.0 (quilt)" replaces it. Wig&pen was the first |
| specification of a new-generation source package format. |
| |
| The behaviour of this format is the same as the "3.0 (quilt)" format |
| except that it doesn't use an explicit list of patches. All files in |
| \fBdebian/patches/\fP matching the perl regular expression \fB[\\w\-]+\fP |
| must be valid patches: they are applied at extraction time. |
| |
| When building a new source package, any change to the upstream source |
| is stored in a patch named \fBzz_debian\-diff\-auto\fP. |
| . |
| .SS Format: 3.0 (native) |
| This format is an extension of the native package format as defined |
| in the 1.0 format. It supports all compression methods and |
| will ignore by default any VCS specific files and directories |
| as well as many temporary files (see default value associated to |
| \fB\-I\fP option in the \fB\-\-help\fP output). |
| . |
| .SS Format: 3.0 (quilt) |
| A source package in this format contains at least |
| an original tarball (\fB.orig.tar.\fP\fIext\fP where \fIext\fP can be |
| \fBgz\fP, \fBbz2\fP, \fBlzma\fP and \fBxz\fP) and a debian tarball |
| (\fB.debian.tar.\fP\fIext\fP). It can also contain additional original |
| tarballs (\fB.orig\-\fP\fIcomponent\fP\fB.tar.\fP\fIext\fP). |
| \fIcomponent\fP can only contain alphanumeric characters and dashes ("\-"). |
| .PP |
| .B Extracting |
| .PP |
| The main original tarball is extracted first, then all additional original |
| tarballs are extracted in subdirectories named after the \fIcomponent\fP |
| part of their filename (any pre-existing directory is replaced). The |
| debian tarball is extracted on top of the source directory after prior |
| removal of any pre-existing \fBdebian\fP directory. Note that the |
| debian tarball must contain a \fBdebian\fP sub-directory but it |
| can also contain binary files outside of that directory (see |
| \fB\-\-include\-binaries\fP option). |
| .PP |
| All patches listed in \fBdebian/patches/debian.series\fP or |
| \fBdebian/patches/series\fP are then applied. |
| If the former file is used and the latter one doesn't exist (or is a |
| symlink), then the latter is replaced with a symlink to the former. This |
| is meant to simplify usage of quilt to manage the set of patches. Note |
| however that while \fBdpkg\-source\fP parses correctly series files with |
| explicit options used for patch application (stored on each line |
| after the patch filename and one or more spaces), it does ignore those |
| options and always expect patches that can be applied with the \fB\-p1\fP |
| option of \fBpatch\fP. It will thus emit a warning when it encounters |
| such options, and the build is likely to fail. |
| .PP |
| Similarly to quilt's default behaviour, the patches can remove files too. |
| .PP |
| The file \fB.pc/applied\-patches\fP is created if some |
| patches have been applied during the extraction. |
| .PP |
| .B Building |
| .PP |
| All original tarballs found in the current directory are extracted in a |
| temporary directory by following the same logic as for the unpack, the |
| debian directory is copied over in the temporary directory, and all |
| patches except the automatic patch (\fBdebian\-changes\-\fP\fIversion\fP |
| or \fBdebian\-changes\fP, depending on \fB\-\-single\-debian\-patch\fP) are |
| applied. The temporary directory is compared to the source package |
| directory. When the diff is non-empty, the build fails unless |
| \fB\-\-single\-debian\-patch\fP or \fB\-\-auto\-commit\fP |
| has been used, in which case the diff is stored in the automatic patch. |
| If the automatic patch is created/deleted, it's added/removed from the |
| series file and from the quilt metadata. |
| |
| Any change |
| on a binary file is not representable in a diff and will thus lead to a |
| failure unless the maintainer deliberately decided to include that |
| modified binary file in the debian tarball (by listing it in |
| \fBdebian/source/include\-binaries\fP). The build will also fail if it |
| finds binary files in the debian sub-directory unless they have been |
| whitelisted through \fBdebian/source/include\-binaries\fP. |
| |
| The updated debian directory and the list of modified binaries is then |
| used to generate the debian tarball. |
| |
| The automatically generated diff doesn't include changes on VCS specific |
| files as well as many temporary files (see default value associated to |
| \fB\-i\fP option in the \fB\-\-help\fP output). In particular, the |
| \fB.pc\fP directory used by quilt is ignored during generation of the |
| automatic patch. |
| |
| Note: \fBdpkg\-source\fP \fB\-\-before\-build\fP (and \fB\-b\fP) will |
| ensure that all patches listed in the series file are applied so that a |
| package build always has all patches applied. It does this by finding |
| unapplied patches (they are listed in the \fBseries\fP file but not in |
| \fB.pc/applied\-patches\fP), and if the first patch in that set can be |
| applied without errors, it will apply them all. The option |
| \fB\-\-no\-preparation\fP can be used to disable this |
| behavior. |
| |
| .PP |
| .B Recording changes |
| .TP |
| .RI "\fB\-\-commit\fP [" directory "] [" patch-name "] [" patch-file ] |
| Generates a patch corresponding to the local changes that are not managed |
| by the quilt patch system and integrates it in the patch system under |
| the name \fIpatch-name\fP. If the name is missing, it will be asked |
| interactively. If \fIpatch-file\fP is given, it is used as the patch |
| corresponding to the local changes to integrate. This is mainly useful |
| after a build failure that pre-generated this file. Once integrated, an |
| editor is launched so that you can edit the meta-information in the patch |
| header. |
| |
| .PP |
| .B Build options |
| .TP |
| .BI \-\-allow\-version\-of\-quilt\-db= version |
| Allow \fBdpkg\-source\fP to build the source package if the version of |
| the quilt metadata is the one specified, even if \fBdpkg\-source\fP |
| doesn't know about it. Effectively this says that the given version of the |
| quilt metadata is compatible with the version 2 that \fBdpkg\-source\fP |
| currently supports. The version of the quilt metadata is stored in |
| \fB.pc/.version\fP. |
| .TP |
| .B \-\-include\-removal |
| Do not ignore removed files and include them in the automatically |
| generated patch. |
| .TP |
| .B \-\-include\-timestamp |
| Include timestamp in the automatically generated patch. |
| .TP |
| .B \-\-include\-binaries |
| Add all modified binaries in the debian tarball. Also add them to |
| \fBdebian/source/include\-binaries\fP: they will be added by default |
| in subsequent builds and this option is thus no more needed. |
| .TP |
| .B \-\-no\-preparation |
| Do not try to prepare the build tree by applying patches which are |
| apparently unapplied. |
| .TP |
| .B \-\-single\-debian\-patch |
| Use \fBdebian/patches/debian\-changes\fP instead of |
| \fBdebian/patches/debian\-changes\-\fP\fIversion\fP for the name of the |
| automatic patch generated during build. This option is particularly |
| useful when the package is maintained in a VCS and a patch set can't reliably |
| be generated. Instead the current diff with upstream should be stored in a |
| single patch. The option would be put in \fBdebian/source/local\-options\fP |
| and would be accompanied by a \fBdebian/source/local\-patch\-header\fP file |
| explaining how the Debian changes can be best reviewed, for example in the |
| VCS that is used. |
| .TP |
| .B \-\-create\-empty\-orig |
| Automatically create the main original tarball as empty if it's missing |
| and if there are supplementary original tarballs. This option is meant to |
| be used when the source package is just a bundle of multiple upstream |
| software and where there's no "main" software. |
| .TP |
| .B \-\-unapply\-patches |
| Unapply the patches in the \fB\-\-after\-build\fP hook. You usually don't |
| need this option as dpkg\-source will automatically unapply the patches |
| if it did apply them during \fB\-\-before\-build\fP. This |
| option is only allowed in \fBdebian/source/local\-options\fP so that all |
| generated source packages have the same behavior by default. |
| .TP |
| .B \-\-abort\-on\-upstream\-changes |
| The process fails if an automatic patch has been generated. This option |
| can be used to ensure that all changes were properly recorded in separate |
| quilt patches prior to the source package build. This option is not |
| allowed in \fBdebian/source/options\fP but can be used in |
| \fBdebian/source/local\-options\fP. |
| .TP |
| .B \-\-auto\-commit |
| The process doesn't fail if an automatic patch has been generated, instead |
| it's immediately recorded in the quilt series. |
| |
| .PP |
| .B Extract options |
| .TP |
| .B \-\-skip\-debianization |
| Skips extraction of the debian tarball on top of the upstream sources. |
| .TP |
| .B \-\-skip\-patches |
| Do not apply patches at the end of the extraction. |
| . |
| .SS Format: 3.0 (custom) |
| This format is special. It doesn't represent a real source package |
| format but can be used to create source packages with arbitrary files. |
| .PP |
| .B Build options |
| .PP |
| All non-option arguments are taken as files to integrate in the |
| generated source package. They must exist and are preferably |
| in the current directory. At least one file must be given. |
| .TP |
| .BI \-\-target\-format= value |
| \fBRequired\fP. Defines the real format of the generated source package. |
| The generated .dsc file will contain this value in its \fIFormat\fP field |
| and not "3.0 (custom)". |
| . |
| .SS Format: 3.0 (git) |
| This format is experimental. |
| .PP |
| A source package in this format consists of a |
| single bundle of a git repository \fB.git\fP to hold the source of a package. |
| There may also be a \fB.gitshallow\fP file listing revisions for a shallow |
| git clone. |
| .PP |
| .B Extracting |
| .PP |
| The bundle is cloned as a git repository to the target directory. |
| If there is a gitshallow file, it is installed as `.git/shallow` inside |
| the cloned git repository. |
| .PP |
| Note that by default the new repository will have the same branch checked |
| out that was checked out in the original source. (Typically "master", but |
| it could be anything.) Any other branches will be available under |
| `remotes/origin/`. |
| .PP |
| .B Building |
| .PP |
| Before going any further, some checks are done to ensure that we |
| don't have any non-ignored uncommitted changes. |
| .PP |
| \fBgit\-bundle\fP(1) is used to generate a bundle of the git repository. |
| By default, all branches and tags in the repository are included in the |
| bundle. |
| .PP |
| .B Build options |
| .TP |
| .BI \-\-git\-ref= ref |
| Allows specifying a git ref to include in the git bundle. Use disables |
| the default behavior of including all branches and tags. May be specified |
| multiple times. The \fIref\fP can be the name of a branch or tag to |
| include. It may also be any parameter that can be passed to |
| \fBgit\-rev\-list\fP(1). For example, to include only |
| the master branch, use \-\-git\-ref=master. To include all tags and |
| branches, except for the private branch, use \-\-git\-ref=\-\-all |
| \-\-git\-ref=^private |
| .TP |
| .BI \-\-git\-depth= number |
| Creates a shallow clone with a history truncated to the specified number of |
| revisions. |
| .SS Format: 3.0 (bzr) |
| This format is experimental. It generates a single tarball |
| containing the bzr repository. |
| .PP |
| .B Extracting |
| .PP |
| The tarball is unpacked and then bzr is used to checkout the current |
| branch. |
| .PP |
| .B Building |
| .PP |
| Before going any further, some checks are done to ensure that we |
| don't have any non-ignored uncommitted changes. |
| .PP |
| Then the VCS specific part of the source directory is copied over to a |
| temporary directory. Before this temporary directory is packed in a tarball, |
| various cleanup are done to save space. |
| .SH WARNINGS AND ERRORS |
| .SS no source format specified in debian/source/format |
| The file \fBdebian/source/format\fP should always exist and indicate the |
| desired source format. For backwards compatibility, format "1.0" is |
| assumed when the file doesn't exist but you should not rely on this: |
| at some point in the future dpkg\-source will be modified to fail when that |
| file doesn't exist. |
| |
| The rationale is that format "1.0" is no longer the recommended format, |
| you should usually pick one of the newer formats ("3.0 (quilt)", "3.0 |
| (native)") but \fBdpkg\-source\fP will not do this automatically for you. |
| If you want to continue using the old format, you should be explicit about |
| it and put "1.0" in \fBdebian/source/format\fP. |
| .SS the diff modifies the following upstream files |
| When using source format "1.0" it is usually a bad idea to modify |
| upstream files directly as the changes end up hidden and mostly |
| undocumented in the .diff.gz file. Instead you should store your changes |
| as patches in the debian directory and apply them at build-time. To avoid |
| this complexity you can also use the format "3.0 (quilt)" that offers this |
| natively. |
| .SS cannot represent change to \fIfile\fP |
| Changes to upstream sources are usually stored with patch files, but not |
| all changes can be represented with patches: they can only alter the |
| content of plain text files. If you try replacing a file with something of |
| a different type (for example replacing a plain file with a symlink or a |
| directory), you will get this error message. |
| .SS newly created empty file \fIfile\fB will not be represented in diff |
| Empty files can't be created with patch files. Thus this change is not |
| recorded in the source package and you are warned about it. |
| .SS executable mode \fIperms\fB of \fIfile\fB will not be represented in diff |
| .SS special mode \fIperms\fB of \fIfile\fB will not be represented in diff |
| Patch files do not record permissions of files and thus modified |
| permissions are not stored in the source package. This warning reminds you |
| of that fact. |
| .SH FILE FORMATS |
| .SS debian/source/format |
| This file contains on a single line the format that should be used to |
| build the source package (possible formats are described above). No leading |
| or trailing spaces are allowed. |
| .SS debian/source/include\-binaries |
| This file contains a list of binary files (one per line) that should be |
| included in the debian tarball. Leading and trailing spaces are stripped. |
| Lines starting with "#" are comments and are skipped. Empty lines are ignored. |
| .SS debian/source/options |
| This file contains a list of long options that should be automatically |
| prepended to the set of command line options of a \fBdpkg\-source \-b\fR |
| or \fBdpkg\-source \-\-print\-format\fR call. Options like |
| \fB\-\-compression\fR and \fB\-\-compression\-level\fR are well suited for |
| this file. |
| .P |
| Each option should be put on a separate line. Empty lines and lines |
| starting with "#" are ignored. The leading "\-\-" should be |
| stripped and short options are not allowed. Optional spaces are allowed |
| around the "=" symbol and optional quotes are allowed around the value. |
| Here's an example of such a file: |
| .P |
| # let dpkg\-source create a debian.tar.bz2 with maximal compression |
| compression = "bzip2" |
| compression\-level = 9 |
| # use debian/patches/debian\-changes as automatic patch |
| single\-debian\-patch |
| # ignore changes on config.{sub,guess} |
| extend-diff-ignore = "(^|/)(config\.sub|config\.guess)$" |
| .P |
| Note: \fBformat\fR options are not accepted in this file, you should |
| use \fBdebian/source/format\fR instead. |
| .SS debian/source/local\-options |
| Exactly like \fBdebian/source/options\fP except that the file is not |
| included in the generated source package. It can be useful to store |
| a preference tied to the maintainer or to the VCS repository where |
| the source package is maintained. |
| .SS debian/source/local\-patch\-header |
| .SS debian/source/patch\-header |
| Free form text that is put on top of the automatic patch generated |
| in formats "2.0" or "3.0 (quilt)". \fBlocal\-patch\-header\fP is not |
| included in the generated source package while \fBpatch\-header\fP is. |
| .SS debian/patches/series |
| This file lists all patches that have to be applied (in the given order) |
| on top of the upstream source package. Leading and trailing spaces are |
| stripped. Lines starting with "#" are comments and are skipped. Empty |
| lines are ignored. Remaining lines start with a patch filename (relative |
| to the \fBdebian/patches/\fP directory) up to the first space character or |
| the end of line. Optional quilt options can follow up to the end of line |
| or the first "#" preceded by one or more spaces (which marks the start of |
| a comment up to the end of line). |
| .SH BUGS |
| The point at which field overriding occurs compared to certain |
| standard output field settings is rather confused. |
| .SH SEE ALSO |
| .BR dpkg\-deb (1), |
| .BR dpkg (1), |
| .BR dselect (1). |
| . |
| .SH AUTHORS |
| Copyright \(co 1995-1996 Ian Jackson |
| .br |
| Copyright \(co 2000 Wichert Akkerman |
| .br |
| Copyright \(co 2008-2011 Rapha\[:e]l Hertzog |
| .sp |
| This is free software; see the GNU General Public Licence version 2 or later |
| for copying conditions. There is NO WARRANTY. |