DEVSCRIPTS(1)

๐Ÿ“ฆ
version 2.23.7ubuntu0.2 ยท 4 versions
, in ubuntu noble

๐ŸŽ€ NAME ๐ŸŽ€

devscripts โ€” scripts to ease the lives of Debian developers ๐Ÿ’…โœจ

(Yes bestie, this is the DEVSCRIPTS(1) page from the General Commands Manual. Buckle up.)


๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so the devscripts package? It's literally a whole collection of scripts which may be of use to Debian developers and others wishing to build Debian packages. For a summary of the available scripts, please see the file /usr/share/doc/devscripts/README.gz, and for full details, please see the individual manpages. They are contributed by multiple developers; for details of the authors, please see the code or manpages. ๐Ÿฆ‹

Also, the directory /usr/share/doc/devscripts/examples contains an example exim script for sorting mail arriving to Debian mailing lists. ๐Ÿ“ฌ


๐ŸŒธ ENVIRONMENT ๐ŸŒธ

Several scripts of the devscripts suite use the following environment variables. Check the man pages of individual scripts for more details on how the variables are used. ๐Ÿ‘€

  • DEBEMAIL โ€” Email of the person acting on a given Debian package via devscripts. ๐Ÿ’Œ
  • DEBFULLNAME โ€” Full name (first + family) of the person acting on a given Debian package via devscripts. ๐Ÿ’–

๐Ÿš€ SCRIPTS ๐Ÿš€

Here is the complete list of available devscripts. See their man pages for additional documentation. (It's giving directory of icons, fr fr.) ๐Ÿ‘‘

  • annotate-output(1) โ€” run a command and prepend time and stream (O for stdout, E for stderr) for every line of output. ๐Ÿ‘‘
  • archpath(1) โ€” Prints arch (tla/Bazaar 1.x) package names. Also supports calculating the package names for other branches. [tla]
  • bts(1) โ€” A command-line tool for accessing the Debian Bug Tracking System, both to send mails to control@bts.debian.org and to access the web pages and SOAP interface of the BTS. [www-browser, libauthen-sasl-perl, libsoap-lite-perl, liburi-perl, libwww-perl, bsd-mailx | mailx]
  • build-rdeps(1) โ€” Searches for all packages that build-depend on a given package. [dctrl-tools, dose-extra, libdpkg-perl]
  • chdist(1) โ€” tool to easily play with several distributions. [dctrl-tools]
  • checkbashisms(1) โ€” check whether a /bin/sh script contains any common bash-specific constructs. ๐Ÿš
  • cowpoke(1) โ€” upload a Debian source package to a cowbuilder host and build it, optionally also signing and uploading the result to an incoming queue. [ssh-client]
  • cvs-debi, cvs-debc(1) โ€” wrappers around debi and debc respectively (see below) which allow them to be called from the CVS working directory. [cvs-buildpackage]
  • cvs-debrelease(1) โ€” wrapper around debrelease which allows it to be called from the CVS working directory. [cvs-buildpackage, dupload | dput, ssh-client]
  • cvs-debuild(1) โ€” A wrapper for cvs-buildpackage to use debuild as its package building program. [cvs-buildpackage, lintian, gnupg |gnupg2]
  • dcmd(1) โ€” run a given command replacing the name of a .changes or .dsc file with each of the files referenced therein. *
  • dd-list(1) โ€” given a list of packages, pretty-print it ordered by maintainer. *
  • debbisect(1) โ€” bisect snapshot.debian.org to find which change in the archive introduced a certain problem. [mmdebstrap, python3-debian]
  • debc(1) โ€” List contents of current package. Do this after a successful "debuild" to see if the package looks all right.
  • debchange (abbreviation dch)(1) โ€” Modifies debian/changelog and manages version numbers for you. It will either increment the version number or add an entry for the current version, depending upon the options given to it. [libdistro-info-perl, libsoap-lite-perl]*
  • debcheckout(1) โ€” checkout the development repository of a Debian package. *
  • debclean(1) โ€” Clean a Debian source tree. Debclean will clean all Debian source trees below the current directory, and if requested, also remove all files that were generated from these source trees (that is .deb, .dsc and .changes files). It will keep the .diffs and original files, though, so that the binaries and other files can be rebuilt if necessary. *
  • debcommit(1) โ€” Commits changes to cvs, darcs, svn, svk, tla, bzr, git, or hg, using new entries in debian/changelog as the commit message. Also supports tagging Debian package releases. [cvs | darcs | subversion | svk | tla | bzr | git-core | mercurial, libtimedate-perl]
  • debdiff(1) โ€” A program which examines two .deb files or two .changes files and reports on any difference found in their file lists. Useful for ensuring that no files were inadvertently lost between versions. Can also examine two .dsc files and report on the changes between source versions. For a deeper comparison one can use the diffoscope package. [wdiff, patchutils]*
  • debdiff-apply(1) โ€” Apply unified diffs of two Debian source packages, such as those generated by debdiff, to a target Debian source package. Any changes to debian/changelog are dealt with specially, to avoid the conflicts that changelog diffs typically produce when applied naively. May be used to check that old patches still apply to newer versions of those packages. [python3-debian, python3-unidiff, quilt]
  • debi(1) โ€” Installs the current package by using dpkg. It assumes that the current package has just been built (for example by debuild), and the .deb lives in the parent directory, and will effectively run dpkg -i on the .deb. The ability to install the package with a very short command is very useful when troubleshooting packages.
  • debootsnap(1) โ€” Combines debootstrap and snapshot.debian.org to create a chroot containing exactly the requested selection of packages. This can be used to re-create a chroot from the past, for example to reproduce a bug. The tool is also used by debrebuild to build a package in a chroot with build dependencies in the same version as recorded in the buildinfo file. [apt-utils, dpkg-dev, equivs, mmdebstrap, python3-pycurl]
  • debrelease(1) โ€” A wrapper around dupload or dput which figures out which version to upload, and then calls dupload or dput to actually perform the upload. [dupload | dput, ssh-client]
  • debrebuild(1) โ€” A script that provided a .buildinfo file reports the instructions on how to try to reproduce the reported build. [sbuild | mmdebstrap, python3-pycurl, libdpkg-perl]
  • debrepro(1) โ€” A script that tests reproducibility of Debian packages. It will build a given source directory twice, with a set of variation between the first and second build, and compare the binary packages produced. If diffoscope is installed, it is used to compare non-matching binaries. If disorderfs is installed, it is used during the build to inject non-determinism in filesystem listing operations. [faketime, diffoscope, disorderfs]
  • debrsign(1) โ€” This transfers a .changes/.dsc pair to a remote machine for signing, and runs debsign on the remote machine over an SSH connection. [gnupg | gnupg2, debian-keyring, ssh-client]
  • debsign(1) โ€” Use GNU Privacy Guard to sign the changes (and possibly dsc) files created by running dpkg-buildpackage with no-sign options. Useful if you are building a package on a remote machine and wish to sign it on a local one. This script is capable of automatically downloading the .changes and .dsc files from a remote machine. [gnupg |gnupg2, debian-keyring, ssh-client]*
  • debsnap(1) โ€” grab packages from https://snapshot.debian.org [libwww-perl, libjson-perl]
  • debuild(1) โ€” A wrapper for building a package (i.e., dpkg-buildpackage) to avoid problems with insufficient permissions and wrong paths etc. Debuild will set up the proper environment for building a package. Debuild will also run lintian to check that the package does not have any major policy violations. [lintian, gnupg | gnupg2]*
  • deb-janitor(1) โ€” command-line client for interacting with the Debian Janitor.
  • deb-reversion(1) โ€” increases a binary package version number and repacks the package, useful for porters and the like.
  • deb-why-removed(1) โ€” shows the reason a package was removed from the archive. [libdpkg-perl]
  • dep3changelog(1) โ€” generate a changelog entry from a DEP3-style patch header.
  • desktop2menu(1) โ€” given a freedesktop.org desktop file, generate a skeleton for a menu file. [libfile-desktopentry-perl]
  • dget(1) โ€” Downloads Debian source and binary packages. Point at a .changes or .dsc to download all references files. Specify a package name to download it from the configured apt repository. [wget | curl]
  • diff2patches(1) โ€” extracts patches from a .diff.gz file placing them under debian/ or, if present, debian/patches. [patchutils]
  • dpkg-depcheck, dpkg-genbuilddeps(1) โ€” Runs a specified command (such as debian/rules build) or dpkg-buildpackage, respectively, to determine the packages used during the build process. This information can be helpful when trying to determine the packages needed in the Build-Depends etc. lines in the debian/control file. [build-essential, strace]
  • dscextract(1) โ€” extract a single file from a Debian source package. [patchutils]
  • dscverify(1) โ€” check the signature and MD5 sums of a dsc file against the most current Debian keyring on your system. [gnupg | gnupg2, debian-keyring]
  • edit-patch(1) โ€” add/edit a patch for a source package and commit the changes. [quilt | dpatch | cdbs]
  • getbuildlog(1) โ€” download package build logs from Debian auto-builders. [wget]
  • git-deborig(1) โ€” try to produce Debian orig.tar using git-archive(1). [libdpkg-perl, libgit-wrapper-perl, liblist-compare-perl, libstring-shellquote-perl, libtry-tiny-perl]
  • grep-excuses(1) โ€” grep britney's excuses to find out what is happening to your packages. [libdbd-pg-perl, libterm-size-perl, libyaml-syck-perl, wget, w3m]
  • hardening-check(1) โ€” report the hardening characteristics of a set of binaries.
  • list-unreleased(1) โ€” searches for packages marked UNRELEASED in their changelog.
  • ltnu (Long Time No Upload)(1) โ€” the Long Time No Upload detective ๐Ÿ’… it lists every upload of packages by the uploader or maintainer you name, and shows them ordered by the last upload of that package, oldest uploads first.
  • manpage-alert(1) โ€” hunts down binaries that have no corresponding manpages ๐Ÿ•ต๏ธ [man-db]
  • mass-bug(1) โ€” files bug reports, but like, a mass of them. Bulk mode activated ๐Ÿ“จ [bsd-mailx | mailx]
  • mergechanges(1) โ€” glues together .changes files from the same release but built on different architectures ๐Ÿงฉ
  • mk-build-deps(1) โ€” hand it a package name and/or a control file, and it'll generate a binary package you can install to satisfy the build-dependencies of the package you named. build-dep queen โœจ [equivs]
  • mk-origtargz(1) โ€” renames the upstream tarball, optionally swapping the compression and yeeting unwanted files out of it ๐Ÿ—‘๏ธ [libfile-which-perl, unzip, xz-utils, file]
  • namecheck(1) โ€” checks whether project names are already taken, so you don't show up with a name that's, uh, already someone's ๐ŸŽ€
  • nmudiff(1) โ€” prepares a diff of this version (presumably an NMU against the previously released version (as per the changelog)) and submits that diff to the BTS ๐Ÿ“ฌ [patchutils, mutt]
  • origtargz(1) โ€” fetches the orig tarball of a Debian package from various sources, and unpacks it ๐Ÿ“ฆ [pristine-tar, pristine-lfs]
  • plotchangelog(1) โ€” displays info from a changelog graphically using gnuplot ๐Ÿ“ˆ [libtimedate-perl, gnuplot]
  • pts-subscribe(1) โ€” subscribes you to the PTS (Package Tracking System) for a limited period of time โณ [bsd-mailx | mailx, at]
  • rc-alert(1) โ€” lists the installed packages that have release-critical bugs. not the vibe you want, bestie ๐Ÿšจ [wget | curl]
  • reproducible-check(1) โ€” reports on the reproducible status of installed packages. For more details please see <https://reproducible-builds.org>. [wget | curl]... wait, no โ€” that one's got no bracket deps, just the link, my bad ๐Ÿซถ
  • rmadison(1) โ€” remotely queries the Debian archive database about packages, from the comfort of your own terminal ๐Ÿ›ฐ๏ธ [liburi-perl, wget | curl]
  • sadt(1) โ€” runs DEP-8 tests. short name, big responsibilities ๐Ÿ”ฅ [python3-debian, autodep8]
  • salsa(1) โ€” manipulates salsa.debian.org repositories and users ๐Ÿ’ƒ [libgitlab-api-v4-perl]
  • suspicious-source(1) โ€” outputs a list of files that are not common source files. side-eye activated ๐Ÿ‘€ [python3-magic]
  • svnpath(1) โ€” prints the path to the Subversion repository of a Subversion checkout. It also supports calculating the paths for branches and tags in a repository independent fashion, and it's used by debcommit to generate svn tags ๐ŸŒฟ [subversion]
  • tagpending(1) โ€” runs from a Debian source tree and tags the bugs that are to be closed in the latest changelog as pending ๐Ÿท๏ธ [libsoap-lite-perl]
  • transition-check(1) โ€” checks a list of source packages for involvement in transitions for which uploads to unstable are currently blocked ๐Ÿšง [libwww-perl, libyaml-syck-perl]
  • uscan(1) โ€” automatically scans for and downloads upstream updates. Uscan can also call a program such as uupdate to attempt to update the Debianised version based on the new update. And yeah, whilst uscan could be used to release the updated version automatically, it is probably better not to without testing it first โ€” do not skip the testing step, i am begging ๐Ÿ˜ญ Uscan can also verify detached OpenPGP signatures if upstream's signing key is known ๐Ÿ” [file, gpgv | gpgv2, gnupg | gnupg2, libfile-dirlist-perl, libfile-touch-perl, libfile-which-perl, liblwp-protocol-https-perl, libmoo-perl, libwww-perl, unzip, xz-utils]*
  • uupdate(1) โ€” updates the package with an archive or patches from an upstream author. This will be of help if you have to update your package. It'll try to apply the latest diffs to your package and tell you how successful it was ๐Ÿ“ [patch]
  • what-patch(1) โ€” determines what patch system, if any, a source package is using ๐Ÿ” [patchutils]
  • whodepends(1) โ€” checks which maintainers' packages depend on a package. the social network of deps ๐Ÿ•ธ๏ธ
  • who-permits-upload(1) โ€” retrieves information about Debian Maintainer access control lists ๐Ÿ”‘ [gnupg | gnupg2, libencode-locale-perl, libwww-perl, debian-keyring]
  • who-uploads(1) โ€” determines the most recent uploaders of a package to the Debian archive. archive gossip, but factual ๐Ÿ’ฌ [gnupg | gnupg2, debian-keyring, debian-maintainers, wget]
  • wnpp-alert(1) โ€” lists installed packages which are orphaned or up for adoption ๐Ÿฅบ adopt a package today [wget | curl]
  • wnpp-check(1) โ€” checks whether there is an open request for packaging or intention to package bug for a package ๐Ÿ“‹ [wget | curl]
  • wrap-and-sort(1) โ€” wraps long lines and sorts items in packaging files. formatting queen behavior ๐Ÿ‘‘ [python3-debian]

and that's the whole scroll, bestie ๐Ÿ’– every single one of these lives in the Debian Utilities collection, page DEVSCRIPTS(1) โ€” that's the source and the page name straight off the footer, no cap. go forth and script responsibly ๐Ÿฆ‹๐ŸŒธ

๐Ÿ“ฆ where this page comes from