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 de‐
27 vscripts.
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 1.x) package names. Also supports calcu‐
43 lating the package names for other branches. [tla]
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 in‐
65 coming queue. [ssh-client]
66
67 cvs-debi, cvs-debc(1)
68 wrappers around debi and debc respectively (see below) which al‐
69 low 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 debbisect(1)
91 bisect snapshot.debian.org to find which change in the archive
92 introduced a certain problem. [mmdebstrap, python3-debian]
93
94 debc(1)
95 List contents of current package. Do this after a successful
96 "debuild" to see if the package looks all right.
97
98 debchange (abbreviation dch)[24m(1)
99 Modifies debian/changelog and manages version numbers for you.
100 It will either increment the version number or add an entry for
101 the current version, depending upon the options given to it.
102 [libdistro-info-perl, libsoap-lite-perl]*
103
104 debcheckout(1)
105 checkout the development repository of a Debian package. *
106
107 debclean(1)
108 Clean a Debian source tree. Debclean will clean all Debian
109 source trees below the current directory, and if requested, also
110 remove all files that were generated from these source trees
111 (that is .deb, .dsc and .changes files). It will keep the
112 .diffs and original files, though, so that the binaries and
113 other files can be rebuilt if necessary. [fakeroot]*
114
115 debcommit(1)
116 Commits changes to cvs, darcs, svn, svk, tla, bzr, git, or hg,
117 using new entries in debian/changelog as the commit message.
118 Also supports tagging Debian package releases. [cvs | darcs |
119 subversion | svk | tla | bzr | git-core | mercurial, libtime‐
120 date-perl]
121
122 debdiff(1)
123 A program which examines two .deb files or two .changes files
124 and reports on any difference found in their file lists. Useful
125 for ensuring that no files were inadvertently lost between ver‐
126 sions. Can also examine two .dsc files and report on the
127 changes between source versions. For a deeper comparison one can
128 use the diffoscope package. [wdiff, patchutils]*
129
130 debdiff-apply(1)
131 Apply unified diffs of two Debian source packages, such as those
132 generated by debdiff, to a target Debian source package. Any
133 changes to debian/changelog are dealt with specially, to avoid
134 the conflicts that changelog diffs typically produce when ap‐
135 plied naively. May be used to check that old patches still apply
136 to newer versions of those packages. [python3-debian,
137 python3-unidiff, quilt]
138
139 debi(1)
140 Installs the current package by using the setuid root debpkg
141 script described below. It assumes that the current package has
142 just been built (for example by debuild), and the .deb lives in
143 the parent directory, and will effectively run dpkg -i on the
144 .deb. The ability to install the package with a very short com‐
145 mand is very useful when troubleshooting packages.
146
147 debootsnap(1)
148 Combines debootstrap and snapshot.debian.org to create a chroot
149 containing exactly the requested selection of packages. This can
150 be used to re-create a chroot from the past, for example to re‐
151 produce a bug. The tool is also used by debrebuild to build a
152 package in a chroot with build dependencies in the same version
153 as recorded in the buildinfo file. [python3-pycurl, mmdebstrap]
154
155 debpkg(1)
156 A wrapper for dpkg used by debi to allow convenient testing of
157 packages. For debpkg to work, it needs to be made setuid root,
158 and this needs to be performed by the sysadmin -- it is not in‐
159 stalled as setuid root by default. (Note that being able to run
160 a setuid root debpkg is effectively the same as having root ac‐
161 cess to the system, so this should be done with caution.) Hav‐
162 ing debpkg as a wrapper for dpkg can be a Good Thing (TM), as it
163 decreases the potential for damage by accidental wrong use of
164 commands in superuser mode (e.g., an inadvertent rm -rf * in the
165 wrong directory is disastrous as many can attest to).
166
167 debrelease(1)
168 A wrapper around dupload or dput which figures out which version
169 to upload, and then calls dupload or dput to actually perform
170 the upload. [dupload | dput, ssh-client]
171
172 debrebuild(1)
173 A script that provided a .buildinfo file reports the instruc‐
174 tions on how to try to reproduce the reported build. [sbuild |
175 mmdebstrap, python3-pycurl, libdpkg-perl]
176
177 debrepro(1)
178 A script that tests reproducibility of Debian packages. It will
179 build a given source directory twice, with a set of variation
180 between the first and second build, and compare the binary pack‐
181 ages produced. If diffoscope is installed, it is used to compare
182 non-matching binaries. If disorderfs is installed, it is used
183 during the build to inject non-determinism in filesystem listing
184 operations. [faketime, diffoscope, disorderfs]
185
186 debrsign(1)
187 This transfers a .changes/.dsc pair to a remote machine for
188 signing, and runs debsign on the remote machine over an SSH con‐
189 nection. [gnupg | gnupg2, debian-keyring, ssh-client]
190
191 debsign(1)
192 Use GNU Privacy Guard to sign the changes (and possibly dsc)
193 files created by running dpkg-buildpackage with no-sign options.
194 Useful if you are building a package on a remote machine and
195 wish to sign it on a local one. This script is capable of auto‐
196 matically downloading the .changes and .dsc files from a remote
197 machine. [gnupg |gnupg2, debian-keyring, ssh-client]*
198
199 debsnap(1)
200 grab packages from https://snapshot.debian.org [libwww-perl,
201 libjson-perl]
202
203 debuild(1)
204 A wrapper for building a package (i.e., dpkg-buildpackage) to
205 avoid problems with insufficient permissions and wrong paths
206 etc. Debuild will set up the proper environment for building a
207 package. Debuild will use the fakeroot program to build the
208 package by default, but can be instructed to use any other gain-
209 root command, or can even be installed setuid root. Debuild can
210 also be used to run various of the debian/rules operations with
211 the same root-gaining procedure. Debuild will also run lintian
212 to check that the package does not have any major policy viola‐
213 tions. [fakeroot, lintian, gnupg | gnupg2]*
214
215 deb-janitor(1)
216 command-line client for interacting with the Debian Janitor.
217
218 deb-reversion(1)
219 increases a binary package version number and repacks the pack‐
220 age, useful for porters and the like.
221
222 deb-why-removed(1)
223 shows the reason a package was removed from the archive. [lib‐
224 dpkg-perl]
225
226 dep3changelog(1)
227 generate a changelog entry from a DEP3-style patch header.
228
229 desktop2menu(1)
230 given a freedesktop.org desktop file, generate a skeleton for a
231 menu file. [libfile-desktopentry-perl]
232
233 dget(1)
234 Downloads Debian source and binary packages. Point at a .changes
235 or .dsc to download all references files. Specify a package name
236 to download it from the configured apt repository. [wget | curl]
237
238 diff2patches(1)
239 extracts patches from a .diff.gz file placing them under debian/
240 or, if present, debian/patches. [patchutils]
241
242 dpkg-depcheck, dpkg-genbuilddeps(1)
243 Runs a specified command (such as debian/rules build) or dpkg-
244 buildpackage, respectively, to determine the packages used dur‐
245 ing the build process. This information can be helpful when
246 trying to determine the packages needed in the Build-Depends
247 etc. lines in the debian/control file. [build-essential, strace]
248
249 dscextract(1)
250 extract a single file from a Debian source package. [patchutils]
251
252 dscverify(1)
253 check the signature and MD5 sums of a dsc file against the most
254 current Debian keyring on your system. [gnupg | gnupg2, debian-
255 keyring]
256
257 edit-patch(1)
258 add/edit a patch for a source package and commit the changes.
259 [quilt | dpatch | cdbs]
260
261 getbuildlog(1)
262 download package build logs from Debian auto-builders. [wget]
263
264 git-deborig(1)
265 try to produce Debian orig.tar using git-archive(1). [libdpkg-
266 perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shel‐
267 lquote-perl, libtry-tiny-perl]
268
269 grep-excuses(1)
270 grep britney's excuses to find out what is happening to your
271 packages. [libdbd-pg-perl, libterm-size-perl, libyaml-syck-perl,
272 wget, w3m]
273
274 hardening-check(1)
275 report the hardening characteristics of a set of binaries.
276
277 list-unreleased(1)
278 searches for packages marked UNRELEASED in their changelog.
279
280 ltnu (Long Time No Upload)[24m(1)
281 List all uploads of packages by the given uploader or maintainer
282 and display them ordered by the last upload of that package,
283 oldest uploads first.
284
285 manpage-alert(1)
286 locate binaries without corresponding manpages. [man-db]
287
288 mass-bug(1)
289 mass-file bug reports. [bsd-mailx | mailx]
290
291 mergechanges(1)
292 merge .changes files from the same release but built on differ‐
293 ent architectures.
294
295 mk-build-deps(1)
296 Given a package name and/or control file, generate a binary
297 package which may be installed to satisfy the build-dependencies
298 of the given package. [equivs]
299
300 mk-origtargz(1)
301 Rename upstream tarball, optionally changing the compression and
302 removing unwanted files. [libfile-which-perl, unzip, xz-utils,
303 file]
304
305 namecheck(1)
306 Check project names are not already taken.
307
308 nmudiff(1)
309 prepare a diff of this version (presumably an NMU against the
310 previously released version (as per the changelog) and submit
311 the diff to the BTS. [patchutils, mutt]
312
313 origtargz(1)
314 fetch the orig tarball of a Debian package from various sources,
315 and unpack it. [pristine-tar, pristine-lfs]
316
317 plotchangelog(1)
318 display information from a changelog graphically using gnuplot.
319 [libtimedate-perl, gnuplot]
320
321 pts-subscribe(1)
322 subscribe to the PTS (Package Tracking System) for a limited pe‐
323 riod of time. [bsd-mailx | mailx, at]
324
325 rc-alert(1)
326 list installed packages which have release-critical bugs. [wget
327 | curl]
328
329 reproducible-check(1)
330 reports on the reproducible status of installed packages. For
331 more details please see <https://reproducible-builds.org>.
332
333 rmadison(1)
334 remotely query the Debian archive database about packages.
335 [liburi-perl, wget | curl]
336
337 sadt(1)
338 run DEP-8 tests. [python3-debian, autodep8]
339
340 salsa(1)
341 manipulates salsa.debian.org repositories and users [libgitlab-
342 api-v4-perl]
343
344 suspicious-source(1)
345 output a list of files which are not common source files.
346 [python3-magic]
347
348 svnpath(1)
349 Prints the path to the Subversion repository of a Subversion
350 checkout. Also supports calculating the paths for branches and
351 tags in a repository independent fashion. Used by debcommit to
352 generate svn tags. [subversion]
353
354 tagpending(1)
355 runs from a Debian source tree and tags bugs that are to be
356 closed in the latest changelog as pending. [libsoap-lite-perl]
357
358 transition-check(1)
359 Check a list of source packages for involvement in transitions
360 for which uploads to unstable are currently blocked. [libwww-
361 perl, libyaml-syck-perl]
362
363 uscan(1)
364 Automatically scan for and download upstream updates. Uscan can
365 also call a program such as uupdate to attempt to update the De‐
366 bianised version based on the new update. Whilst uscan could be
367 used to release the updated version automatically, it is proba‐
368 bly better not to without testing it first. Uscan can also ver‐
369 ify detached OpenPGP signatures if upstream's signing key is
370 known. [file, gpgv | gpgv2, gnupg | gnupg2, libfile-dirlist-
371 perl, libfile-touch-perl, libfile-which-perl, liblwp-protocol-
372 https-perl, libmoo-perl, libwww-perl, unzip, xz-utils]*
373
374 uupdate(1)
375 Update the package with an archive or patches from an upstream
376 author. This will be of help if you have to update your pack‐
377 age. It will try to apply the latest diffs to your package and
378 tell you how successful it was. [patch]
379
380 what-patch(1)
381 determine what patch system, if any, a source package is using.
382 [patchutils]
383
384 whodepends(1)
385 check which maintainers' packages depend on a package.
386
387 who-permits-upload(1)
388 Retrieve information about Debian Maintainer access control
389 lists. [gnupg | gnupg2, libencode-locale-perl, libwww-perl, de‐
390 bian-keyring]
391
392 who-uploads(1)
393 determine the most recent uploaders of a package to the Debian
394 archive. [gnupg | gnupg2, debian-keyring, debian-maintainers,
395 wget]
396
397 wnpp-alert(1)
398 list installed packages which are orphaned or up for adoption.
399 [wget | curl]
400
401 wnpp-check(1)
402 check whether there is an open request for packaging or inten‐
403 tion to package bug for a package. [wget | curl]
404
405 wrap-and-sort(1)
406 wrap long lines and sort items in packaging files. [python3-de‐
407 bian]
408
409
410
411DEBIAN Debian Utilities DEVSCRIPTS(1)