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