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

# Dpkg::Control::FieldsCore(3)

manage (list of official) control fields

## NAME

Dpkg::Control::FieldsCore - manage (list of official) control fields

## DESCRIPTION

The modules contains a list of fieldnames with associated meta-data explaining in which type of control information they are allowed. The types are the CTRL\_\* constants exported by Dpkg::Control.

## FUNCTIONS

- $f = field\_capitalize($field\_name)

  Returns the field name properly capitalized. All characters are lowercase, except the first of each word (words are separated by a hyphen in field names).

- field\_is\_official($fname)

  Returns true if the field is official and known.

- field\_is\_allowed\_in($fname, @types)

  Returns true (1) if the field `$fname` is allowed in all the types listed in the list. Note that you can use type sets instead of individual types (ex: CTRL\_FILE\_CHANGES \| CTRL\_CHANGELOG).

  field\_allowed\_in(A\|B, C) returns true only if the field is allowed in C and either A or B.

  Undef is returned for non-official fields.

- field\_transfer\_single($from, $to, $field)

  If appropriate, copy the value of the field named `$field` taken from the `$from` Dpkg::Control object to the `$to` Dpkg::Control object.

  Official fields are copied only if the field is allowed in both types of objects. Custom fields are treated in a specific manner. When the target is not among CTRL\_PKG\_SRC, CTRL\_PKG\_DEB or CTRL\_FILE\_CHANGES, then they are always copied as is (the X- prefix is kept). Otherwise they are not copied except if the target object matches the target destination encoded in the field name. The initial X denoting custom fields can be followed by one or more letters among "S" (Source: corresponds to CTRL\_PKG\_SRC), "B" (Binary: corresponds to CTRL\_PKG\_DEB) or "C" (Changes: corresponds to CTRL\_FILE\_CHANGES).

  Returns undef if nothing has been copied or the name of the new field added to `$to` otherwise.

- field\_transfer\_all($from, $to)

  Transfer all appropriate fields from `$from` to `$to`. Calls *field\_transfer\_single()* on all fields available in `$from`.

  Returns the list of fields that have been added to `$to`.

- field\_ordered\_list($type)

  Returns an ordered list of fields for a given type of control information. This list can be used to output the fields in a predictable order. The list might be empty for types where the order does not matter much.

- *field\_list\_src\_dep()*

  List of fields that contains dependencies-like information in a source Debian package.

- *field\_list\_pkg\_dep()*

  List of fields that contains dependencies-like information in a binary Debian package. The fields that express real dependencies are sorted from the stronger to the weaker.

- field\_get\_dep\_type($field)

  Return the type of the dependency expressed by the given field. Can either be "normal" for a real dependency field (Pre-Depends, Depends, ...) or "union" for other relation fields sharing the same syntax (Conflicts, Breaks, ...). Returns undef for fields which are not dependencies.

- field\_get\_sep\_type($field)

  Return the type of the field value separator. Can be one of FIELD\_SEP\_UNKNOWN, FIELD\_SEP\_SPACE, FIELD\_SEP\_COMMA or FIELD\_SEP\_LINE.

- field\_register($field, $allowed\_types, %opts)

  Register a new field as being allowed in control information of specified types. `%opts` is optional

- field\_insert\_after($type, $ref, @fields)

  Place field after another one ($ref) in output of control information of type `$type`.

- field\_insert\_before($type, $ref, @fields)

  Place field before another one ($ref) in output of control information of type `$type`.

## CHANGES

### Version 1.00 (dpkg 1.17.0)

Mark the module as public.
