---
name: "dbuild"
section: "1"
platform: "linux"
package: "dbuild"
version: "1.15.1"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/dbuild"
---

# dbuild(1)

build Debian binary packages from source packages

## NAME

dbuild, run-dbuild - build Debian binary packages from source packages

## SYNOPSIS

**dbuild**\[-u *username*\|--username *username*\] \[-v\|--verbose\] \[-V\|--verbose-logs\]\[-r *root-command*\|--root *root-command*\]\[-m *address*\|--mail *address*\]-k *keyring.pgp*\|--keyring *keyring.pgp*\]-u *umask*\|--umask *umask*\] \[-f\|--fix-for-frozen\] \[--mail-maintainer\] \[-s\|--no-signatures\] \[--no-signature-checks\] \[-p\|--check-pgppass\] \[-c\|--check-configsite\] \[-C\|--clean-fetched\] \[-a\|--build-all\] \[--build-source\] \[-h\|--help\] *source-file*...

**run-dbuild** *sourcedir*

## DESCRIPTION

**dbuild** builds Debian binary packages from Debian source packages. The arguments are either Debian .dsc files, or names of directories (**dbuild** will search for all .dsc files in those directories), or FTP or HTTP URL-addresses to them. Note that an FTP URL referring to a directory must end in a slash (/).

The system must have all tools necessary to build the packages installed. Debian source packages do not yet support source or build dependencies.

**dbuild** saves the log file from failed builds to the file  *FAILED/foo.message* (where  *foo* is the name and version of the package). Check that file to see why the package failed to build, and either fix problems in the build environment (e.g., missing build tools), or report a bug to the Debian bug system, if it is a problem with the package.

**dbuild** saves the log file from successful builds to the file *OK/foo.message*, and also copies the .dsc, .deb, and .changes files to the  *OK* directory. The next run of  **dbuild** will check these files (in *FAILED* and *OK,* and also in *IGNORED*) and skip packages that have already been built or that are known not to build. Remove these files (or just the relevant lines of these files) to make **dbuild** re-try the build.

**run-dbuild** is a script that runs **dbuild** and then builds a set of web pages that let people easily browse the build logs.

## OPTIONS

These options apply to **dbuild**, not to **run-dbuild**.

- *-v, --verbose*

  Tell more about each step in the building process.

- *-V, --verbose-logs*

  Make the build logs contain more information.

- *-u foo, --username foo*

  The address (\`foo') used as the maintainer address for  **dpkg-buildpackage**.

- *-r root-command, --root root-command*

  Choose the command to gain root priviledges. Certain parts of the build process needs to be run as root. However, the **fakeroot** command can run other commands and make them think they're running as root. This is good enough for building Debian packages, even though the command doesn't actually give any root priviledges; this is the default. If you don't have  **fakeroot**, you can use *-r* to use **sudo** instead, for example. Straight  **su** won't work due to differences in argument passing.

- *-m addresss, --mail address*

  Set the address where build logs should be mailed.

- *-k keyring.pgp, --keyring keyring.pgp*

  Set the PGP keyring used to check package files. Default is */usr/doc/debian/debian-keyring.pgp*.

- *-u umask, --umask umask*

  Set the umask for the process. Default is inherited from the parent process.

- *-f, --fix-for-frozen*

  Modify the *debian/changelog* file for the package to make uploads to go the *frozen* part of the distribution, in addition to whatever has been specified in the *changelog* already.

- *--mail-maintainer*

  Mail the build log to the maintainer. You probably shouldn't use this option.

- *-s, --no-signatures*

  Do not PGP sign the packages that have been built.

- *--no-signature-checks*

  Do not check the PGP signatures on the .dsc files. Use this option with *extreme* care.

- *-p, --check-pgppass*

  Check the PGPPASS environment variable and refuse to continue if it is not the correct PGP passphrase. Note that using PGPPASS can be a security hazard.

- *-c, --check-configsite*

  Check that the CONFIG\_SITE environment variable is set. It can be used to speed up GNU autoconf generated **configure** scripts.

- *-C, --clean-fetched*

  Remove all files fetched via the network. This helps keep disk usage at a minimum.

- *-a, --build-all*

  Build even packages that are architecture independent, not just packages that need to be compiled on the platform **dbuild** is running on.

- *--build-source*

  Re-build source packages.

## CONFIGURATION

**dbuild** can be configured by creating the file  *.dbuildrc* in the home directory. It should be a shell script in */bin/sh* syntax and may set the following variables (corresponding option given in parentheses): *keyring* (-k); *rootcmd* (-r); *username* (-u); *mailto* (-m); *mail\_maintainer* (--mail-maintainer; value should be \`yes' or \`no'); *sign\_changes* (-s); *check\_pgppass* (-p); *check\_configsite* (-c); *verbose* (-v; value should be \`yes' or \`no'); *verobse\_logs* (-V; value should be \`yes' or \`no'); *fix\_for\_frozen* (-f; value should be \`yes' or \`no'); *clean\_fetched* (-C; value should be \`yes' or \`no'); *build\_all* (-a; value should be \`yes' or \`no');

## BUGS

HTTP URLs that refer to directories are not yet implemented.

If a build fails after **dpkg-buildpackage** has been called, i.e., while log files and built packages are being moved to the OK subdirectory, **dbuild** will do stupid things. Fixing this requires a rewrite, which will happen fairly soon, hopefully.

## AUTHOR

Lars Wirzenius (liw@iki.fi)
