DEBSIGN(1)
๐ DEBSIGN(1) ๐
okay bestie, welcome to the General Commands Manual glow-up of debsign โ the little utility that signs your Debian stuff so you don't have to cry about it. โจ
๐ NAME ๐
debsign โ sign a Debian .changes and .dsc file pair using GPG. periodt. ๐
๐ธ SYNOPSIS ๐ธ
debsign [options] [changes-file|dsc-file|commands-file ...]
๐ฆ DESCRIPTION ๐ฆ
So here's the tea โ: debsign mimics the signing aspects (and the bugs, yes, the bugs, we're keeping that honest) of dpkg-buildpackage(1).
It takes a .dsc, .buildinfo, or .changes file and signs it โ plus any child .dsc, .buildinfo, or .changes files that are directly or indirectly referenced by it โ using the GNU Privacy Guard. And it's not lazy about it either: it's careful to calculate the size and checksums of any newly signed child files and replace the original values in the parent file. no cap, it does the math. ๐งฎโจ
If you don't specify a file, debian/changelog gets parsed to figure out the name of the .changes file to look for in the parent directory. sneaky but iconic. ๐
If you hand it a .commands file, it gets validated first (the deets live at ftp://ftp.upload.debian.org/pub/UploadQueue/README), and then the name specified in the Uploader field is what gets used for signing.
Why would you even want this? Great question, bestie. This utility is useful if a developer must build a package on one machine where it is unsafe to sign it. In that case they only need to transfer the small .dsc, .buildinfo and .changes files over to a safe machine, run debsign on them there, and transfer them back. ๐ซถ
This process can be automated in two ways:
- If the files to be signed live on the remote machine, use the
-roption to copy them to the local machine and back again after signing. - If the files live on the local machine, they may be transferred to the remote machine for signing using
debrsign(1).
โ ๏ธ heads up though: it is probably safer to have your trusted signing machine usedebsignto connect to the untrusted non-signing machine, rather than usingdebrsignto make the connection in the reverse direction. like, direction matters here, trust. ๐
This program can take default settings from the devscripts configuration files, as described below. ๐
โจ OPTIONS โจ
-r[username@]remotehost โ the files to be signed live on the specified remote host. In this case, a.dsc,.buildinfoor.changesfile must be explicitly named, with an absolute directory or one relative to the remote home directory.scpwill be used for the copying. The[username@]remotehost:filenamesyntax is permitted as an alternative. Wildcards (*etc.) are allowed. ๐ฐ๏ธ-pprognameโ whendebsignneeds to execute GPG to sign, it will run progname (searching thePATHif necessary), instead ofgpg.-mmaintainerโ specify the maintainer name to be used for signing. (Seedpkg-buildpackage(1)for more information about the differences between-m,-eand-kwhen building packages;debsignmakes no use of these distinctions except with respect to the precedence of the various options. These multiple options are provided so that the program will behave as expected when called bydebuild(1).) ๐ซก-emaintainerโ same as-mbut takes precedence over it.-kkeyidโ specify the key ID to be used for signing; overrides any-mand-eoptions. ๐-Sโ look for a source-only.changesfile instead of a binary-build.changesfile.-adebian-architecture,-tGNU-system-typeโ seedpkg-architecture(1)for a description of these options. They affect the search for the.changesfile. They are provided to mimic the behaviour ofdpkg-buildpackagewhen determining the name of the.changesfile.--multiโ Multiarch.changesmode: this signifies thatdebsignshould use the most recent file with the name patternpackage_version_*+*.changesas the.changesfile, allowing for the.changesfiles produced bydpkg-cross. ๐--re-sign,--no-re-signโ recreate the signature, respectively use the existing signature, if the file has been signed already. If neither option is given and an already signed file is found, the user is asked if he or she likes to use the current signature. ๐--debs-dir DIRโ look for the files to be signed in directory DIR instead of the parent of the source directory. This should either be an absolute path or relative to the top of the source directory.--no-conf,--noconfโ do not read any configuration files. This can only be used as the first option given on the command-line. โ ๏ธ (yes, first. it said what it said.)--help,-hโ display a help message and exit successfully. ๐ฅฐ--versionโ display version and copyright information and exit successfully.
๐ CONFIGURATION VARIABLES ๐
The two configuration files /etc/devscripts.conf and ~/.devscripts are sourced in that order to set configuration variables. Command line options can be used to override configuration file settings. Environment variable settings are ignored for this purpose. ๐
The currently recognised variables are:
DEBSIGN_PROGRAMโ setting this is equivalent to giving a-poption.DEBSIGN_MAINTโ this is the-moption.DEBSIGN_KEYIDโ and this is the-koption.DEBSIGN_ALWAYS_RESIGNโ always re-sign files even if they are already signed, without prompting.DEBRELEASE_DEBS_DIRโ this specifies the directory in which to look for the files to be signed, and is either an absolute path or relative to the top of the source tree. This corresponds to the--debs-dircommand line option. This directive could be used, for example, if you always usepbuilderorsvn-buildpackageto build your packages. Note that it also affectsdebrelease(1)in the same way, hence the strange name of the option. ๐ญ (the name is giving "we ran out of ideas" but we respect it.)
๐ SEE ALSO ๐
debrsign(1), debuild(1), dpkg-architecture(1), dpkg-buildpackage(1), gpg(1), md5sum(1), sha1sum(1), sha256sum(1), scp(1), devscripts.conf(5)
๐ AUTHOR ๐
This program was written by Julian Gilbey <jdg@debian.org> and is copyright under the GPL, version 2 or later.
and that's the whole page, bestie ๐ซถ this one came out of the Debian Utilities corner of the world, filed under the manual section for DEBSIGN(1) โ shoutout to the DEBIAN crew for keeping it cute and shipping it. go sign something and slay ๐
โจ
๐ฆ where this page comes from
- debian trixie: devscripts 2.25.15+deb13u1 ยท GPL-2.0-or-later
- fedora 43: devscripts 2.25.19-2.fc43 ยท GPL-2.0-or-later
- fedora 43: devscripts 2.25.33-1.fc43 ยท GPL-2.0-or-later
- fedora 44: devscripts 2.26.5-1.fc44 ยท GPL-2.0-or-later
- ubuntu questing: devscripts 2.25.19ubuntu2
- ubuntu resolute: devscripts 2.26.7 ยท GPL-2.0-or-later
- ubuntu stonking: devscripts 2.26.11ubuntu1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms