dpkg-source.1 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. .\" Authors: Ian Jackson
  2. .TH dpkg\-source 1 "2007-09-24" "Debian Project" "dpkg utilities"
  3. .SH NAME
  4. dpkg\-source \- Debian source package (.dsc) manipulation tool
  5. .
  6. .SH SYNOPSIS
  7. .B dpkg\-source
  8. .RI [ options ]
  9. .I command
  10. .
  11. .SH DESCRIPTION
  12. .B dpkg\-source
  13. packs and unpacks Debian source archives.
  14. None of these commands allow multiple options to be combined into one,
  15. and they do not allow the value for an option to be specified in a
  16. separate argument.
  17. .
  18. .SH COMMANDS
  19. .TP
  20. .BI "\-x " filename ".dsc " \fR[\fPoutput-directory\fR]\fP
  21. Extract a source package. One non-option argument must be supplied,
  22. the name of the Debian source control file
  23. .RB ( .dsc ).
  24. An optional second non-option argument may be supplied to specify the
  25. directory to extract the source package to, this must not exist. If
  26. no output directory is specified, the source package is extracted into
  27. a directory named \fIsource\fR-\fIversion\fR under the current working
  28. directory.
  29. .B dpkg\-source
  30. will read the names of the other file(s) making up the source package
  31. from the control file; they are assumed to be in the same directory as
  32. the
  33. .BR .dsc .
  34. The files in the extracted package will have their permissions and
  35. ownerships set to those which would have been expected if the files
  36. and directories had simply been created - directories and executable
  37. files will be 0777 and plain files will be 0666, both modified by the
  38. extractors' umask; if the parent directory is setgid then the
  39. extracted directories will be too, and all the files and directories
  40. will inherit its group ownership.
  41. .TP
  42. .RI "\fB\-b\fP " directory " [" orig-directory | orig-targz |\(aq\(aq]
  43. Build a source package. One or two non-option arguments should
  44. be supplied. The first is taken as the name of the directory
  45. containing the debianized source tree (i.e. with a debian sub-directory
  46. and maybe changes to the original files). If a second argument is supplied
  47. it should be the name of the original source directory or tarfile or
  48. the empty string if the package is a Debian-specific one and so has no
  49. Debianisation diffs. If no second argument is supplied then
  50. .B dpkg\-source
  51. will look for the original source tarfile
  52. .IB package _ upstream-version .orig.tar. extension
  53. (where \fIextension\fP is one of
  54. .BR gz ", " bz2 ", and " lzma )
  55. or the original source directory
  56. .IB directory .orig
  57. depending on the \fB\-sX\fP arguments.
  58. If the source package is being built as a version 3 source package using
  59. a VCS, no upstream tarball or original source directory is needed.
  60. .TP
  61. .BR \-h ", " \-\-help
  62. Show the usage message and exit.
  63. .TP
  64. .BR \-\-version
  65. Show the version and exit.
  66. .
  67. .SH OPTIONS
  68. .TP
  69. .BI \-c controlfile
  70. Specifies the main source control file to read information from. The
  71. default is
  72. .BR debian/control .
  73. If given with relative pathname this is interpreted starting at
  74. the source tree's top level directory.
  75. .TP
  76. .BI \-l changelogfile
  77. Specifies the change log file to read information from. The
  78. default is
  79. .BR debian/changelog .
  80. If given with relative pathname this is interpreted starting at
  81. the source tree's top level directory.
  82. .TP
  83. .BI \-F changelogformat
  84. Specifies the format of the changelog. By default the format is read
  85. from a special line near the bottom of the changelog or failing that
  86. defaults to the debian standard format.
  87. .TP
  88. .BI \-V name = value
  89. Set an output substitution variable.
  90. See \fBdeb\-substvars\fP(5) for a discussion of output substitution.
  91. .TP
  92. .BI \-T substvarsfile
  93. Read substitution variables in
  94. .IR substvarsfile ;
  95. the default is to not read any file.
  96. .TP
  97. .BI \-D field = value
  98. Override or add an output control file field.
  99. .TP
  100. .BI \-U field
  101. Remove an output control file field.
  102. .TP
  103. .BI \-E
  104. This option turns certain warnings into errors.
  105. .TP
  106. .BI \-W
  107. This option negates a previously set
  108. .BR \-E "."
  109. .TP
  110. .BR \-Z \fIcompression\fP
  111. Specify the compression to use for created files (tarballs and diffs).
  112. Note that this option will not cause existing tarballs to be recompressed,
  113. it only affects new files. Supported values are:
  114. .IR gzip ", " bzip2 ", and " lzma .
  115. \fIgzip\fP is the default.
  116. .TP
  117. .BR \-z \fIlevel\fP
  118. Compression level to use. As with \fB\-Z\fP it only affects newly created
  119. files. Supported values are:
  120. .IR 1 " to " 9 ", " best ", and " fast .
  121. \fI9\fP is the default.
  122. .TP
  123. .BR \-i [\fIregexp\fP]
  124. You may specify a perl regular expression to match files you want
  125. filtered out of the list of files for the diff. (This list is
  126. generated by a find command.) (If the source package is being built as a
  127. version 3 source package using a VCS, this is instead used to
  128. ignore uncommitted files.) \fB\-i\fP by itself enables the option,
  129. with a default that will filter out control files and directories of the
  130. most common revision control systems, backup and swap files and Libtool
  131. build output directories. There can only be one active regexp, of multiple
  132. \fB\-i\fP options only the last one will take effect.
  133. This is very helpful in cutting out extraneous files that get included
  134. in the diff, e.g. if you maintain your source in a revision control
  135. system and want to use a checkout to build a source package without
  136. including the additional files and directories that it will usually
  137. contain (e.g. CVS/, .cvsignore, .svn/). The default regexp is already
  138. very exhaustive, but if you need to replace it, please note that by
  139. default it can match any part of a path, so if you want to match the
  140. begin of a filename or only full filenames, you will need to provide
  141. the necessary anchors (e.g. '(^|/)', '($|/)') yourself.
  142. .TP
  143. .BR \-I [\fIfile-pattern\fP]
  144. If this option is specified, the pattern will be passed to
  145. .BR tar (1)'s
  146. \-\-exclude
  147. option when it is called to generate a .orig.tar or .tar file. For
  148. example, \-ICVS will make tar skip over CVS directories when generating
  149. a .tar.gz file. The option may be repeated multiple times to list multiple
  150. patterns to exclude.
  151. \fB\-I\fP by itself adds default \-\-exclude options that will
  152. filter out control files and directories of the most common revision
  153. control systems, backup and swap files and Libtool build output
  154. directories.
  155. .PP
  156. .B Note:
  157. While they have similar purposes, \fB-i\fP and \fB-I\fP have very
  158. different syntax and semantics. \fB-i\fP can only be specified once and
  159. takes a perl compatible regular expression which is matched against
  160. the full relative path of each file. \fB-I\fP can specified
  161. multiple times and takes a filename pattern with shell wildcards.
  162. The pattern is applied to the full relative path but also
  163. to each part of the path individually. The exact semantic of tar's
  164. \-\-exclude option is somewhat complicated, see
  165. http://www.gnu.org/software/tar/manual/tar.html#wildcards for a full
  166. documentation.
  167. The default regexp and patterns for both options can be seen
  168. in the output of the \fB\-\-help\fP command.
  169. .TP
  170. .B Build options (with -b):
  171. .PP
  172. .BR \-sa ", " \-sp ", " \-sk ", " \-su " and " \-sr
  173. will not overwrite existing tarfiles or directories. If this is
  174. desired then
  175. .BR \-sA ", " \-sP ", " \-sK ", " \-sU " and " \-sR
  176. should be used instead.
  177. .PP
  178. If the source package is being built as a version 3 source package using
  179. a VCS, these options do not make sense, and will be ignored.
  180. .TP
  181. .BR \-sk
  182. Specifies to expect the original source as a tarfile, by default
  183. .IB package _ upstream-version .orig.tar. extension \fR.
  184. It will leave this original source in place as a tarfile, or copy it
  185. to the current directory if it isn't already there. The
  186. tarball will be unpacked into
  187. .IB directory .orig
  188. for the generation of the diff.
  189. .TP
  190. .B \-sp
  191. Like
  192. .B \-sk
  193. but will remove the directory again afterwards.
  194. .TP
  195. .B \-su
  196. Specifies that the original source is expected as a directory, by
  197. default
  198. .IB package - upstream-version .orig
  199. and
  200. .B dpkg\-source
  201. will create a new original source archive from it.
  202. .TP
  203. .B \-sr
  204. Like
  205. .B \-su
  206. but will remove that directory after it has been used.
  207. .TP
  208. .B \-ss
  209. Specifies that the original source is available both as a directory
  210. and as a tarfile. dpkg-source will use the directory to create the diff, but
  211. the tarfile to create the
  212. .BR .dsc .
  213. This option must be used with care - if the directory and tarfile do
  214. not match a bad source archive will be generated.
  215. .TP
  216. .B \-sn
  217. Specifies to not look for any original source, and to not generate a diff.
  218. The second argument, if supplied, must be the empty string. This is
  219. used for Debian-specific packages which do not have a separate
  220. upstream source and therefore have no debianisation diffs.
  221. .TP
  222. .BR \-sa " or " \-sA
  223. Specifies to look for the original source archive as a tarfile or as a
  224. directory - the second argument, if any, may be either, or the empty
  225. string (this is equivalent to using
  226. .BR \-sn ).
  227. If a tarfile is found it will unpack it to create the diff and remove
  228. it afterwards (this is equivalent to
  229. .BR \-sp );
  230. if a directory is found it will pack it to create the original source
  231. and remove it afterwards (this is equivalent to
  232. .BR \-sr );
  233. if neither is found it will assume that the package has no
  234. debianisation diffs, only a straightforward source archive (this is
  235. equivalent to
  236. .BR \-sn ).
  237. If both are found then \fBdpkg\-source\fP will ignore the directory,
  238. overwriting it, if
  239. .B \-sA
  240. was specified (this is equivalent to
  241. .BR \-sP )
  242. or raise an error if
  243. .B \-sa
  244. was specified.
  245. .B \-sA
  246. is the default.
  247. .TP
  248. .B Extract options (with \-x):
  249. .PP
  250. In all cases any existing original source tree will be removed.
  251. .TP
  252. .B \-sp
  253. Used when extracting then the original source (if any) will be left
  254. as a tarfile. If it is not already located in the current directory
  255. or if an existing but different file is there it will be copied there.
  256. (\fBThis is the default\fP).
  257. .TP
  258. .B \-su
  259. Unpacks the original source tree.
  260. .TP
  261. .B \-sn
  262. Ensures that the original source is neither copied to the current
  263. directory nor unpacked. Any original source tree that was in the
  264. current directory is still removed.
  265. .PP
  266. All the
  267. .BI \-s X
  268. options are mutually exclusive. If you specify more than one only the
  269. last one will be used.
  270. .
  271. .SH BUGS
  272. The point at which field overriding occurs compared to certain
  273. standard output field settings is rather confused.
  274. The binary package entries in the
  275. .B debian/files
  276. file will be passed through variable substitution twice. This should
  277. not matter, since
  278. .BR $ ", " { " and " }
  279. are not legal in package names or version numbers.
  280. .
  281. .SH SEE ALSO
  282. .BR dpkg\-deb (1),
  283. .BR dpkg (1),
  284. .BR dselect (1).
  285. .
  286. .SH AUTHORS
  287. Copyright (C) 1995-1996 Ian Jackson
  288. .br
  289. Copyright (C) 2000 Wichert Akkerman
  290. .sp
  291. This is free software; see the GNU General Public Licence version 2 or later
  292. for copying conditions. There is NO WARRANTY.