1DEVSCRIPTS(1) General Commands Manual DEVSCRIPTS(1)
2
3
4
6 devscripts - scripts to ease the lives of Debian developers
7
9 The devscripts package provides a collection of scripts which may be of
10 use to Debian developers and others wishing to build Debian packages.
11 For a summary of the available scripts, please see the file
12 /usr/share/doc/devscripts/README.gz, and for full details, please see
13 the individual manpages. They are contributed by multiple developers;
14 for details of the authors, please see the code or manpages.
15
16 Also, the directory /usr/share/doc/devscripts/examples contains exam‐
17 ples of procmail and exim scripts for sorting mail arriving to Debian
18 mailing lists.
19
21 Several scripts of the devscripts suite use the following environment
22 variables. Check the man pages of individual scripts for more details
23 on how the variables are used.
24
25 DEBEMAIL
26 Email of the person acting on a given Debian package via
27 devscripts.
28
29 DEBFULLNAME
30 Full name (first + family) of the person acting on a given Debian
31 package via devscripts.
32
34 Here is the complete list of available devscripts. See their man pages
35 for additional documentation.
36
37 annotate-output(1)
38 run a command and prepend time and stream (O for stdout, E for
39 stderr) for every line of output.
40
41 archpath(1)
42 Prints arch (tla/Bazaar) package names. Also supports calculat‐
43 ing the package names for other branches. [tla | bazaar]
44
45 bts(1) A command-line tool for accessing the Debian Bug Tracking Sys‐
46 tem, both to send mails to control@bts.debian.org and to access
47 the web pages and SOAP interface of the BTS. [www-browser,
48 libauthen-sasl-perl, libnet-smtps-perl, libsoap-lite-perl,
49 liburi-perl, libwww-perl, bsd-mailx | mailx]
50
51 build-rdeps(1)
52 Searches for all packages that build-depend on a given package.
53 [dctrl-tools, dose-extra, libdpkg-perl]
54
55 chdist(1)
56 tool to easily play with several distributions. [dctrl-tools]
57
58 checkbashisms(1)
59 check whether a /bin/sh script contains any common bash-specific
60 constructs.
61
62 cowpoke(1)
63 upload a Debian source package to a cowbuilder host and build
64 it, optionally also signing and uploading the result to an
65 incoming queue. [ssh-client]
66
67 cvs-debi, cvs-debc(1)
68 wrappers around debi and debc respectively (see below) which
69 allow them to be called from the CVS working directory. [cvs-
70 buildpackage]
71
72 cvs-debrelease(1)
73 wrapper around debrelease which allows it to be called from the
74 CVS working directory. [cvs-buildpackage, dupload | dput, ssh-
75 client]
76
77 cvs-debuild(1)
78 A wrapper for cvs-buildpackage to use debuild as its package
79 building program. [cvs-buildpackage, fakeroot, lintian, gnupg
80 |gnupg2]
81
82 dcmd(1)
83 run a given command replacing the name of a .changes or .dsc
84 file with each of the files referenced therein. *
85
86 dd-list(1)
87 given a list of packages, pretty-print it ordered by maintainer.
88 *
89
90 debc(1)
91 List contents of current package. Do this after a successful
92 "debuild" to see if the package looks all right.
93
94 debchange (abbreviation dch)[24m(1)
95 Modifies debian/changelog and manages version numbers for you.
96 It will either increment the version number or add an entry for
97 the current version, depending upon the options given to it.
98 [libdistro-info-perl, libsoap-lite-perl]*
99
100 debcheckout(1)
101 checkout the development repository of a Debian package. *
102
103 debclean(1)
104 Clean a Debian source tree. Debclean will clean all Debian
105 source trees below the current directory, and if requested, also
106 remove all files that were generated from these source trees
107 (that is .deb, .dsc and .changes files). It will keep the
108 .diffs and original files, though, so that the binaries and
109 other files can be rebuilt if necessary. [fakeroot]*
110
111 debcommit(1)
112 Commits changes to cvs, darcs, svn, svk, tla, bzr, git, or hg,
113 using new entries in debian/changelog as the commit message.
114 Also supports tagging Debian package releases. [cvs | darcs |
115 subversion | svk | tla | bzr | git-core | mercurial, libtime‐
116 date-perl]
117
118 debdiff(1)
119 A program which examines two .deb files or two .changes files
120 and reports on any difference found in their file lists. Useful
121 for ensuring that no files were inadvertently lost between ver‐
122 sions. Can also examine two .dsc files and report on the
123 changes between source versions. For a deeper comparison one can
124 use the diffoscope package. [wdiff, patchutils]*
125
126 debdiff-apply(1)
127 Apply unified diffs of two Debian source packages, such as those
128 generated by debdiff, to a target Debian source package. Any
129 changes to debian/changelog are dealt with specially, to avoid
130 the conflicts that changelog diffs typically produce when
131 applied naively. May be used to check that old patches still
132 apply to newer versions of those packages. [python3-debian,
133 python3-unidiff, quilt]
134
135 debi(1)
136 Installs the current package by using the setuid root debpkg
137 script described below. It assumes that the current package has
138 just been built (for example by debuild), and the .deb lives in
139 the parent directory, and will effectively run dpkg -i on the
140 .deb. The ability to install the package with a very short com‐
141 mand is very useful when troubleshooting packages.
142
143 debpkg(1)
144 A wrapper for dpkg used by debi to allow convenient testing of
145 packages. For debpkg to work, it needs to be made setuid root,
146 and this needs to be performed by the sysadmin -- it is not
147 installed as setuid root by default. (Note that being able to
148 run a setuid root debpkg is effectively the same as having root
149 access to the system, so this should be done with caution.)
150 Having debpkg as a wrapper for dpkg can be a Good Thing (TM), as
151 it decreases the potential for damage by accidental wrong use of
152 commands in superuser mode (e.g., an inadvertent rm -rf * in the
153 wrong directory is disastrous as many can attest to).
154
155 debrelease(1)
156 A wrapper around dupload or dput which figures out which version
157 to upload, and then calls dupload or dput to actually perform
158 the upload. [dupload | dput, ssh-client]
159
160 debrebuild(1)
161 A script that provided a .buildinfo file reports the instruc‐
162 tions on how to try to reproduce the reported build.
163
164 debrepro(1)
165 A script that tests reproducibility of Debian packages. It will
166 build a given source directory twice, with a set of variation
167 between the first and second build, and compare the binary pack‐
168 ages produced. If diffoscope is installed, it is used to compare
169 non-matching binaries. If disorderfs is installed, it is used
170 during the build to inject non-determinism in filesystem listing
171 operations. [faketime, diffoscope, disorderfs]
172
173 debrsign(1)
174 This transfers a .changes/.dsc pair to a remote machine for
175 signing, and runs debsign on the remote machine over an SSH con‐
176 nection. [gnupg | gnupg2, debian-keyring, ssh-client]
177
178 debsign(1)
179 Use GNU Privacy Guard to sign the changes (and possibly dsc)
180 files created by running dpkg-buildpackage with no-sign options.
181 Useful if you are building a package on a remote machine and
182 wish to sign it on a local one. This script is capable of auto‐
183 matically downloading the .changes and .dsc files from a remote
184 machine. [gnupg |gnupg2, debian-keyring, ssh-client]*
185
186 debsnap(1)
187 grab packages from https://snapshot.debian.org [libwww-perl,
188 libjson-perl]
189
190 debuild(1)
191 A wrapper for building a package (i.e., dpkg-buildpackage) to
192 avoid problems with insufficient permissions and wrong paths
193 etc. Debuild will set up the proper environment for building a
194 package. Debuild will use the fakeroot program to build the
195 package by default, but can be instructed to use any other gain-
196 root command, or can even be installed setuid root. Debuild can
197 also be used to run various of the debian/rules operations with
198 the same root-gaining procedure. Debuild will also run lintian
199 to check that the package does not have any major policy viola‐
200 tions. [fakeroot, lintian, gnupg | gnupg2]*
201
202 deb-reversion(1)
203 increases a binary package version number and repacks the pack‐
204 age, useful for porters and the like.
205
206 deb-why-removed(1)
207 shows the reason a package was removed from the archive. [lib‐
208 dpkg-perl]
209
210 dep3changelog(1)
211 generate a changelog entry from a DEP3-style patch header.
212
213 desktop2menu(1)
214 given a freedesktop.org desktop file, generate a skeleton for a
215 menu file. [libfile-desktopentry-perl]
216
217 dget(1)
218 Downloads Debian source and binary packages. Point at a .changes
219 or .dsc to download all references files. Specify a package name
220 to download it from the configured apt repository. [wget | curl]
221
222 diff2patches(1)
223 extracts patches from a .diff.gz file placing them under debian/
224 or, if present, debian/patches. [patchutils]
225
226 dpkg-depcheck, dpkg-genbuilddeps(1)
227 Runs a specified command (such as debian/rules build) or dpkg-
228 buildpackage, respectively, to determine the packages used dur‐
229 ing the build process. This information can be helpful when
230 trying to determine the packages needed in the Build-Depends
231 etc. lines in the debian/control file. [build-essential, strace]
232
233 dscextract(1)
234 extract a single file from a Debian source package. [patchutils]
235
236 dscverify(1)
237 check the signature and MD5 sums of a dsc file against the most
238 current Debian keyring on your system. [gnupg | gnupg2, debian-
239 keyring]
240
241 edit-patch(1)
242 add/edit a patch for a source package and commit the changes.
243 [quilt | dpatch | cdbs]
244
245 getbuildlog(1)
246 download package build logs from Debian auto-builders. [wget]
247
248 git-deborig(1)
249 try to produce Debian orig.tar using git-archive(1). [libdpkg-
250 perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shel‐
251 lquote-perl, libtry-tiny-perl]
252
253 grep-excuses(1)
254 grep britney's excuses to find out what is happening to your
255 packages. [libdbd-pg-perl, libterm-size-perl, libyaml-syck-perl,
256 wget, w3m]
257
258 hardening-check(1)
259 report the hardening characteristics of a set of binaries.
260
261 list-unreleased(1)
262 searches for packages marked UNRELEASED in their changelog.
263
264 ltnu (Long Time No Upload)[24m(1)
265 List all uploads of packages by the given uploader or maintainer
266 and display them ordered by the last upload of that package,
267 oldest uploads first.
268
269 manpage-alert(1)
270 locate binaries without corresponding manpages. [man-db]
271
272 mass-bug(1)
273 mass-file bug reports. [bsd-mailx | mailx]
274
275 mergechanges(1)
276 merge .changes files from the same release but built on differ‐
277 ent architectures.
278
279 mk-build-deps(1)
280 Given a package name and/or control file, generate a binary
281 package which may be installed to satisfy the build-dependencies
282 of the given package. [equivs]
283
284 mk-origtargz(1)
285 Rename upstream tarball, optionally changing the compression and
286 removing unwanted files. [libfile-which-perl, unzip, xz-utils,
287 file]
288
289 namecheck(1)
290 Check project names are not already taken.
291
292 nmudiff(1)
293 prepare a diff of this version (presumably an NMU against the
294 previously released version (as per the changelog) and submit
295 the diff to the BTS. [patchutils, mutt]
296
297 origtargz(1)
298 fetch the orig tarball of a Debian package from various sources,
299 and unpack it. [pristine-tar]
300
301 plotchangelog(1)
302 display information from a changelog graphically using gnuplot.
303 [libtimedate-perl, gnuplot]
304
305 pts-subscribe(1)
306 subscribe to the PTS (Package Tracking System) for a limited
307 period of time. [bsd-mailx | mailx, at]
308
309 rc-alert(1)
310 list installed packages which have release-critical bugs. [wget
311 | curl]
312
313 reproducible-check(1)
314 reports on the reproducible status of installed packages. For
315 more details please see <https://reproducible-builds.org>.
316
317 rmadison(1)
318 remotely query the Debian archive database about packages.
319 [liburi-perl, wget | curl]
320
321 sadt(1)
322 run DEP-8 tests. [python3-debian]
323
324 salsa(1)
325 manipulates salsa.debian.org repositories and users [libgitlab-
326 api-v4-perl]
327
328 suspicious-source(1)
329 output a list of files which are not common source files.
330 [python3-magic]
331
332 svnpath(1)
333 Prints the path to the Subversion repository of a Subversion
334 checkout. Also supports calculating the paths for branches and
335 tags in a repository independent fashion. Used by debcommit to
336 generate svn tags. [subversion]
337
338 tagpending(1)
339 runs from a Debian source tree and tags bugs that are to be
340 closed in the latest changelog as pending. [libsoap-lite-perl]
341
342 transition-check(1)
343 Check a list of source packages for involvement in transitions
344 for which uploads to unstable are currently blocked. [libwww-
345 perl, libyaml-syck-perl]
346
347 uscan(1)
348 Automatically scan for and download upstream updates. Uscan can
349 also call a program such as uupdate to attempt to update the
350 Debianised version based on the new update. Whilst uscan could
351 be used to release the updated version automatically, it is
352 probably better not to without testing it first. Uscan can also
353 verify detached OpenPGP signatures if upstream's signing key is
354 known. [file, gpgv | gpgv2, gnupg | gnupg2, libfile-which-perl,
355 liblwp-protocol-https-perl, libmoo-perl, libwww-perl, unzip, xz-
356 utils]*
357
358 uupdate(1)
359 Update the package with an archive or patches from an upstream
360 author. This will be of help if you have to update your pack‐
361 age. It will try to apply the latest diffs to your package and
362 tell you how successful it was. [patch]
363
364 what-patch(1)
365 determine what patch system, if any, a source package is using.
366 [patchutils]
367
368 whodepends(1)
369 check which maintainers' packages depend on a package.
370
371 who-permits-upload(1)
372 Retrieve information about Debian Maintainer access control
373 lists. [gnupg | gnupg2, libencode-locale-perl, libwww-perl,
374 debian-keyring]
375
376 who-uploads(1)
377 determine the most recent uploaders of a package to the Debian
378 archive. [gnupg | gnupg2, debian-keyring, debian-maintainers,
379 wget]
380
381 wnpp-alert(1)
382 list installed packages which are orphaned or up for adoption.
383 [wget | curl]
384
385 wnpp-check(1)
386 check whether there is an open request for packaging or inten‐
387 tion to package bug for a package. [wget | curl]
388
389 wrap-and-sort(1)
390 wrap long lines and sort items in packaging files.
391 [python3-debian]
392
393
394
395DEBIAN Debian Utilities DEVSCRIPTS(1)