---
name: "Dpkg::Control"
section: "3"
platform: "linux"
package: "libdpkg-perl"
version: "1.18.25"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Dpkg::Control"
---

# Dpkg::Control(3)

parse and manipulate official control-like information

## NAME

Dpkg::Control - parse and manipulate official control-like information

## DESCRIPTION

The Dpkg::Control object is a smart version of Dpkg::Control::Hash. It associates a type to the control information. That type can be used to know what fields are allowed and in what order they must be output.

The types are constants that are exported by default. Here's the full list:

- CTRL\_UNKNOWN

  This type is the default type, it indicates that the type of control information is not yet known.

- CTRL\_INFO\_SRC

  Corresponds to the first block of information in a *debian/control* file in a Debian source package.

- CTRL\_INFO\_PKG

  Corresponds to subsequent blocks of information in a *debian/control* file in a Debian source package.

- CTRL\_REPO\_RELEASE

  Corresponds to a *Release* file in a repository.

- CTRL\_INDEX\_SRC

  Corresponds to an entry in a *Sources* file of a source package repository.

- CTRL\_INDEX\_PKG

  Corresponds to an entry in a *Packages* file of a binary package repository.

- CTRL\_PKG\_SRC

  Corresponds to a .dsc file of a Debian source package.

- CTRL\_PKG\_DEB

  Corresponds to the *control* file generated by dpkg-gencontrol (*DEBIAN/control*) and to the same file inside .deb packages.

- CTRL\_FILE\_BUILDINFO

  Corresponds to a .buildinfo file.

- CTRL\_FILE\_CHANGES

  Corresponds to a .changes file.

- CTRL\_FILE\_VENDOR

  Corresponds to a vendor file in `$Dpkg::CONFDIR`/origins/.

- CTRL\_FILE\_STATUS

  Corresponds to an entry in dpkg's *status* file ($Dpkg::ADMINDIR/status).

- CTRL\_CHANGELOG

  Corresponds to the output of dpkg-parsechangelog.

- CTRL\_COPYRIGHT\_HEADER

  Corresponds to the header control block in a *debian/copyright* file in machine readable format.

- CTRL\_COPYRIGHT\_FILES

  Corresponds to a files control block in a *debian/copyright* file in machine readable format.

- CTRL\_COPYRIGHT\_LICENSE

  Corresponds to a license control block in a *debian/copyright* file in machine readable format.

- CTRL\_TESTS

  Corresponds to a package tests control file in *debian/tests/control*.

## METHODS

All the methods of Dpkg::Control::Hash are available. Those listed below are either new or overridden with a different behaviour.

- $c = Dpkg::Control-\>new(%opts)

  If the "type" option is given, it's used to setup default values for other options. See *set\_options()* for more details.

- $c-\>set\_options(%opts)

  Changes the value of one or more options. If the "type" option is changed, it is used first to define default values for others options. The option "allow\_pgp" is set to 1 for CTRL\_PKG\_SRC, CTRL\_FILE\_CHANGES and CTRL\_REPO\_RELEASE and to 0 otherwise. The option "drop\_empty" is set to 0 for CTRL\_INFO\_PKG and CTRL\_INFO\_SRC and to 1 otherwise. The option "name" is set to a textual description of the type of control information.

  The output order is also set to match the ordered list returned by Dpkg::Control::Fields::field\_ordered\_list($type).

- $c-\>*get\_type()*

  Returns the type of control information stored. See the type parameter set during *new()*.

## CHANGES

### Version 1.03 (dpkg 1.18.11)

New type: CTRL\_FILE\_BUILDINFO.

### Version 1.02 (dpkg 1.18.8)

New type: CTRL\_TESTS.

### Version 1.01 (dpkg 1.18.5)

New types: CTRL\_REPO\_RELEASE, CTRL\_COPYRIGHT\_HEADER, CTRL\_COPYRIGHT\_FILES, CTRL\_COPYRIGHT\_LICENSE.

### Version 1.00 (dpkg 1.15.6)

Mark the module as public.
