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

# Dpkg::BuildFlags(3)

query build flags

## NAME

Dpkg::BuildFlags - query build flags

## DESCRIPTION

The Dpkg::BuildFlags object is used by dpkg-buildflags and can be used to query the same information.

## METHODS

- $bf = Dpkg::BuildFlags-\>*new()*

  Create a new Dpkg::BuildFlags object. It will be initialized based on the value of several configuration files and environment variables.

- $bf-\>*load\_vendor\_defaults()*

  Reset the flags stored to the default set provided by the vendor.

- $bf-\>*load\_system\_config()*

  Update flags from the system configuration.

- $bf-\>*load\_user\_config()*

  Update flags from the user configuration.

- $bf-\>*load\_environment\_config()*

  Update flags based on user directives stored in the environment. See [*dpkg-buildflags*(1)](/dpkg-buildflags/1.md) for details.

- $bf-\>*load\_maintainer\_config()*

  Update flags based on maintainer directives stored in the environment. See [*dpkg-buildflags*(1)](/dpkg-buildflags/1.md) for details.

- $bf-\>*load\_config()*

  Call successively *load\_system\_config()*, *load\_user\_config()*, *load\_environment\_config()* and *load\_maintainer\_config()* to update the default build flags defined by the vendor.

- $bf-\>set($flag, $value, $source, $maint)

  Update the build flag `$flag` with value `$value` and record its origin as `$source` (if defined). Record it as maintainer modified if `$maint` is defined and true.

- $bf-\>set\_feature($area, $feature, $enabled)

  Update the boolean state of whether a specific feature within a known feature area has been enabled. The only currently known feature areas are "qa", "sanitize", "hardening" and "reproducible".

- $bf-\>strip($flag, $value, $source, $maint)

  Update the build flag `$flag` by stripping the flags listed in `$value` and record its origin as `$source` (if defined). Record it as maintainer modified if `$maint` is defined and true.

- $bf-\>append($flag, $value, $source, $maint)

  Append the options listed in `$value` to the current value of the flag `$flag`. Record its origin as `$source` (if defined). Record it as maintainer modified if `$maint` is defined and true.

- $bf-\>prepend($flag, $value, $source, $maint)

  Prepend the options listed in `$value` to the current value of the flag `$flag`. Record its origin as `$source` (if defined). Record it as maintainer modified if `$maint` is defined and true.

- $bf-\>update\_from\_conffile($file, $source)

  Update the current build flags based on the configuration directives contained in `$file`. See [*dpkg-buildflags*(1)](/dpkg-buildflags/1.md) for the format of the directives.

  `$source` is the origin recorded for any build flag set or modified.

- $bf-\>get($flag)

  Return the value associated to the flag. It might be undef if the flag doesn't exist.

- $bf-\>*get\_feature\_areas()*

  Return the feature areas (i.e. the area values has\_features will return true for).

- $bf-\>get\_features($area)

  Return, for the given area, a hash with keys as feature names, and values as booleans indicating whether the feature is enabled or not.

- $bf-\>get\_origin($flag)

  Return the origin associated to the flag. It might be undef if the flag doesn't exist.

- $bf-\>is\_maintainer\_modified($flag)

  Return true if the flag is modified by the maintainer.

- $bf-\>has\_features($area)

  Returns true if the given area of features is known, and false otherwise. The only currently recognized feature areas are "qa", "sanitize", "hardening" and "reproducible".

- $bf-\>has($option)

  Returns a boolean indicating whether the flags exists in the object.

- @flags = $bf-\>*list()*

  Returns the list of flags stored in the object.

## CHANGES

### Version 1.03 (dpkg 1.16.5)

New method: `$bf`-\>*get\_feature\_areas()* to list possible values for `$bf`-\>get\_features.

New method `$bf`-\>*is\_maintainer\_modified()* and new optional parameter to `$bf`-\>*set()*, `$bf`-\>*append()*, `$bf`-\>*prepend()*, `$bf`-\>*strip()*.

### Version 1.02 (dpkg 1.16.2)

New methods: `$bf`-\>*get\_features()*, `$bf`-\>*has\_features()*, `$bf`-\>*set\_feature()*.

### Version 1.01 (dpkg 1.16.1)

New method: `$bf`-\>*prepend()* very similar to *append()*. Implement support of the prepend operation everywhere.

New method: `$bf`-\>*load\_maintainer\_config()* that update the build flags based on the package maintainer directives.

### Version 1.00 (dpkg 1.15.7)

Mark the module as public.
