dpkg-source.1 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. .\" Authors: Ian Jackson
  2. .TH dpkg\-source 1 "2007-06-12" "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 [" options "] " directory " [" orig-directory | orig-targz |'']
  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 unpacked source tree. If a second argument is supplied
  46. it should be the name of the original source directory or tarfile or
  47. the empty string if the package is a Debian-specific one and so has no
  48. Debianisation diffs. If no second argument is supplied then
  49. .B dpkg\-source
  50. will look for the original source tarfile
  51. .IB package _ upstream-version .orig.tar.gz
  52. or the original source directory
  53. .IB directory .orig
  54. depending on the \fB\-sX\fP arguments.
  55. .TP
  56. .BR \-h ", " \-\-help
  57. Show the usage message and exit.
  58. .TP
  59. .BR \-\-version
  60. Show the version and exit.
  61. .
  62. .SH OPTIONS
  63. .TP
  64. .BI \-c controlfile
  65. Specifies the main source control file to read information from. The
  66. default is
  67. .BR debian/control .
  68. If given with relative pathname this is interpreted starting at
  69. the source tree's top level directory.
  70. .TP
  71. .BI \-l changelogfile
  72. Specifies the change log file to read information from. The
  73. default is
  74. .BR debian/changelog .
  75. If given with relative pathname this is interpreted starting at
  76. the source tree's top level directory.
  77. .TP
  78. .BI \-F changelogformat
  79. Specifies the format of the changelog. By default the format is read
  80. from a special line near the bottom of the changelog or failing that
  81. defaults to the debian standard format.
  82. .TP
  83. .BI \-V name = value
  84. Set an output substitution variable.
  85. See \fBdeb\-substvars\fP(5) for a discussion of output substitution.
  86. .TP
  87. .BI \-T substvarsfile
  88. Read substitution variables in
  89. .IR substvarsfile ;
  90. the default is
  91. .BR debian/substvars .
  92. .TP
  93. .BI \-D field = value
  94. Override or add an output control file field.
  95. .TP
  96. .BI \-U field
  97. Remove an output control file field.
  98. .TP
  99. .BI \-W
  100. This option turns certain errors into warnings.
  101. .TP
  102. .BI \-E
  103. This option negates a previously set
  104. .BR \-W "."
  105. .TP
  106. .BR \-i [\fIregexp\fP]
  107. You may specify a perl regular expression to match files you want
  108. filtered out of the list of files for the diff. (This list is
  109. generated by a find command.) \fB\-i\fR by itself enables the option,
  110. with a default that will filter out control files and directories of the
  111. most common revision control systems, backup and swap files and Libtool
  112. build output directories.
  113. This is very helpful in cutting out extraneous files that get included
  114. in the .diff.gz, (eg: "debian/BUGS_TODO/*" or "debian/RCS/*,v"). For
  115. instance, if you maintain a package that you track via remote CVS,
  116. where you don't have access permissions for committing the debian
  117. control files and making tags for \fIcvs\-buildpackage(1)\fR, it is
  118. necessary to perform an extra checkout/update into a directory you
  119. keep pristine, to generate the .orig.tar.gz from. That directory will
  120. have CVS/Entries files in it that will contain timestamps that differ
  121. from the ones in your working directory, thus causing them to be
  122. unnecessarily included in every .diff.gz, unless you use the \fB\-i\fR
  123. switch.
  124. .TP
  125. .BI \-I filename
  126. If this option is specified, the filename will be passed to tar's \-\-exclude
  127. option when it is called to generate a .orig.tar.gz or .tar.gz file. For
  128. example, \-ICVS will make tar skip over CVS directories when generating
  129. a .tar.gz file. The option may be repeated multiple times to list multiple
  130. filenames to exclude.
  131. .TP
  132. .BR \-sa , \-sp , \-su , \-sk , \-sA , \-sP , \-sU , \-sK , \-ss " with " \-b
  133. If
  134. .BR \-sk " or " \-sp
  135. is specified
  136. .B dpkg\-source
  137. expects the original source as a tarfile, by default
  138. .IB package _ upstream-version .orig.tar.gz\fR.
  139. It will leave this original source in place as a tarfile, or copy it
  140. to the current directory if it isn't already there
  141. If
  142. .B \-sp
  143. is used rather than
  144. .B \-sk
  145. it will remove it again afterwards.
  146. If
  147. .BR \-su " or " \-sr
  148. is specified the original source is expected as a directory, by
  149. default
  150. .IB package - upstream-version .orig
  151. and
  152. .B dpkg\-source
  153. will create a new original source archive from it. If
  154. .B \-sr
  155. is used
  156. .B dpkg\-source will remove that directory after it has been used.
  157. If
  158. .B \-ss
  159. is specified
  160. .B dpkg\-source
  161. will expect that the original source is available both as a directory
  162. and as a tarfile. If will use the directory to create the diff, but
  163. the tarfile to create the
  164. .BR .dsc .
  165. This option must be used with care - if the directory and tarfile do
  166. not match a bad source archive will be generated.
  167. If
  168. .B \-sn
  169. is specified
  170. .B dpkg\-source
  171. will not look for any original source, and will not generate a diff.
  172. The second argument, if supplied, must be the empty string. This is
  173. used for Debian-specific packages which do not have a separate
  174. upstream source and therefore have no debianisation diffs.
  175. If
  176. .BR \-sa " or " \-sA
  177. is specified
  178. .B dpkg\-source
  179. will look for the original source archive as a tarfile or as a
  180. directory - the second argument, if any, may be either, or the empty
  181. string (this is equivalent to using
  182. .BR \-sn ).
  183. If a tarfile is found it will unpack it to create the diff and remove
  184. it afterwards (this is equivalent to
  185. .BR \-sp );
  186. if a directory is found it will pack it to create the original source
  187. and remove it afterwards (this is equivalent to
  188. .BR \-sr );
  189. if neither is found it will assume that the package has no
  190. debianisation diffs, only a straightforward source archive (this is
  191. equivalent to
  192. .BR \-sn ).
  193. If both are found then \fBdpkg\-source\fP will ignore the directory,
  194. overwriting it, if
  195. .B \-sA
  196. was specified (this is equivalent to
  197. .BR \-sP )
  198. or raise an error if
  199. .B \-sa
  200. was specified.
  201. .B \-sA
  202. is the default.
  203. .BR \-sa ", " \-sp ", " \-sk ", " \-su " and " \-sr
  204. will not overwrite existing tarfiles or directories. If this is
  205. desired then
  206. .BR \-sA ", " \-sP ", " \-sK ", " \-sU " and " \-sR
  207. should be used instead.
  208. .TP
  209. .BR \-sp , \-su , \-sn " with " \-x
  210. In all cases any existing original source tree will be removed.
  211. If
  212. .B \-sp
  213. is used when extracting then the original source (if any) will be left
  214. as a tarfile. If it is not already located in the current directory
  215. or if an existing but different file is there it will be copied there.
  216. This is the default.
  217. .B \-su
  218. unpacks the original source tree.
  219. .B \-sn
  220. ensures that the original source is neither copied to the current
  221. directory nor unpacked. Any original source tree that was in the
  222. current directory is still removed.
  223. .PP
  224. All the
  225. .B \-sX
  226. options are mutually exclusive. If you specify more than one only the
  227. last one will be used.
  228. .
  229. .SH BUGS
  230. The point at which field overriding occurs compared to certain
  231. standard output field settings is rather confused.
  232. The binary package entries in the
  233. .B debian/files
  234. file will be passed through variable substitution twice. This should
  235. not matter, since
  236. .BR $ ", " { " and " }
  237. are not legal in package names or version numbers.
  238. .
  239. .SH SEE ALSO
  240. .BR dpkg\-deb (1),
  241. .BR dpkg (1),
  242. .BR dselect (1).
  243. .
  244. .SH AUTHORS
  245. Copyright (C) 1995-1996 Ian Jackson
  246. .br
  247. Copyright (C) 2000 Wichert Akkerman
  248. .sp
  249. This is free software; see the GNU General Public Licence version 2 or later
  250. for copying conditions. There is NO WARRANTY.