---
name: "dh_components"
section: "1p"
platform: "linux"
package: "pkg-components"
version: "0.10"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/dh_components"
---

# dh\_components(1p)

build additional components

## NAME

dh\_components - build additional components

## SYNOPSIS

**dh\_components** \[*debhelper options*\] \[**--components** *comp*\[,*comp*,...\]\]  \[**--build\_stages** *stage*\[,*stage*,...\]\]  \[**--rules\_locations** *dir*\[,*dir*,...\]\]

## DESCRIPTION

`"dh_components"` is a debhelper program that is responsible for handling additional components that come from separate upstream sources. The aim is to turn each component into a "mini Debian package". It takes the following actions:

- Run through the various build stages for each package and component.

  - Optionally stitch together the Debian copyright files.

  - Generate the "substvar" file from the component control files.

  - Purge the components working directory (unless the *--no-purge* option is set).

  ## FILES

- debian/*package*.components

  - debian/components

  These directories contain all the component data for a given binary package. The second form only works for the first binary in a source package and is overridden by the equivalent first form.

- debian/\[*package*.\]components/*component*

  This is a directory that contains the files specific to that component. In some ways it is like a cut-down version of the debian directory.

- debian/\[*package*.\]components/*component*

  - debian/\[*package*.\]components/

  - /usr/share/pkg-components/build\_stages

  These are the default locations of the build stage scripts in the order of  precedence with highest first. These can be overridden using the `"--rules_locations"`.

- debian/\[*package*.\]components/copyright.in

  This file provides the DEP-5 copyright stanzas for the package but without any of the component stanzas. It forms the basis for the *package*.copyright file.

- debian/\[*package*.\]components/*component*/copyright

  This file provides a DEP-5 fragment of the Debian copyright for this component. It will be merged into the main copyright file at *package*.copyright. Any duplicate `"License"` clauses will be shown only once.

- debian/\[*package*.\]components/*component*/control

  If present this file should look like a Debian control file for the component. The package name of the binary stanza should match the component name. The `"Depends"`, `"Recommends"`, `"Suggests"`, `"Enhances"`, `"Replaces"`, `"Pre-Depends"`, `"Conflicts"`, `"Breaks"` fields are read and turned into substitution variables. So if you have a component `"X"` which declares a Depends on `"Y"`, then a substvar variable `"X:Depends"` will be created with the value `"Y"`. The source package stanza is ignored but can be used to document which build dependencies are due to the component.

## OPTIONS

- **--build\_stages b1,b2,...**

  If this option is listed the sequence described will be used instead of the normal one.

- **--components c1,c2,...**

  If this option is listed only those components listed will be considered.

- **--rules\_locations r1,r2,...**

  If this option is listed the specified locations will be used instead of the default ones. One can use `"%"` to mean the component. Thus to explicitly specify the default one would set:

  ```
      --rules_locations debian/components/%,debian/components,/usr/share/pkg-components/build_stages
  ```

## CONFIGURATION

To enable this functionality it is necessary to pass the argument `"--with components"` to the `"dh"` programa in the `"debian/rules"` file.

## SEE ALSO

[*debhelper*(1)](/debhelper/1.md)

This program is used with debhelper.

[*quilt*(1)](/quilt/1.md)

## AUTHOR

Nicholas Bamber \<nicholas@periapt.co.uk\>
