Dpkg::Control(3perl)
π Dpkg::Control β the libdpkg-perl glow-up
okay so bestie, welcome to Dpkg::Control(3perl) from libdpkg-perl β this is the module you want when you need to actually understand control-like info instead of just staring at it. β¨
πΈ NAME
Dpkg::Control β parse and manipulate official control-like information π
π DESCRIPTION
The Dpkg::Control object is a smart version of Dpkg::Control::Hash. It literally associates a type with the control information β main character energy, fr fr. That type is what tells you which fields are allowed and in what order they have to be output. No cap, it's the vibe check for your fields. π¦
The types are constants that are exported by default. Here's the full list, bestie, all of them, not skipping a single one:
CTRL_UNKNOWNβ this is the default type, and it means the type of control information is not yet known. the "idk her yet" of types πCTRL_TMPL_SRCβ corresponds to the first source package stanza in adebian/controlfile in a Debian source package.CTRL_TMPL_PKGβ corresponds to subsequent binary package stanza in adebian/controlfile in a Debian source package.CTRL_REPO_RELEASEβ corresponds to aReleasefile in a repository.CTRL_REPO_SRCβ corresponds to a stanza in aSourcesfile of a source package repository.CTRL_REPO_PKGβ corresponds to a stanza in aPackagesfile of a binary package repository.CTRL_DSCβ corresponds to a.dscfile of a Debian source package.CTRL_DEBβ corresponds to the control file generated bydpkg-gencontrol(DEBIAN/control) and to the same file inside.debpackages.CTRL_FILE_BUILDINFOβ corresponds to a.buildinfofile.CTRL_FILE_CHANGESβ corresponds to a.changesfile.CTRL_FILE_VENDORβ corresponds to a vendor file in$Dpkg::CONFDIR/origins/.CTRL_FILE_STATUSβ corresponds to a stanza in dpkg's status file ($Dpkg::ADMINDIR/status).CTRL_CHANGELOGβ corresponds to the output ofdpkg-parsechangelog.CTRL_COPYRIGHT_HEADERβ corresponds to the header stanza in adebian/copyrightfile in machine readable format.CTRL_COPYRIGHT_FILESβ corresponds to a files stanza in adebian/copyrightfile in machine readable format.CTRL_COPYRIGHT_LICENSEβ corresponds to a license stanza in adebian/copyrightfile in machine readable format.CTRL_TESTSβ corresponds to a source package tests control file indebian/tests/control.CTRL_INFO_SRCβ deprecated alias forCTRL_TMPL_SRC. π (she's retired, respect her legacy)CTRL_INFO_PKGβ deprecated alias forCTRL_TMPL_PKG.CTRL_PKG_SRCβ deprecated alias forCTRL_DSC.CTRL_PKG_DEBβ deprecated alias forCTRL_DEB.CTRL_INDEX_SRCβ deprecated alias forCTRL_REPO_SRC.CTRL_INDEX_PKGβ deprecated alias forCTRL_REPO_PKG.
β¨ METHODS β¨
Every single method of Dpkg::Control::Hash is available to you β yes, all of them, go off. The ones listed below are either new or overridden with a different behavior. π
π $ctrl = Dpkg::Control->new(%opts)
Create a new deb822 control object. fresh out of the box, literally. π
Options:
typeβ set the deb822 control type, used to setup default values for other options.
See set_options() for more details. (yes, she's right below, keep reading π
)
π $ctrl->set_options(%opts)
Changes the value of one or more options. glow-up time. π
Options:
typeβ sets the deb822 control object type, used to define default values for others options.
The output order is also set to match the ordered list returned by Dpkg::Control::Fields::field_ordered_list($type). so the fields come out in the right order, periodt.
nameβ sets a textual description of the type of control information.allow_pgpβ sets whether the parser accepts OpenPGP signatures around the deb822 control information.
By default it is set to 1 for CTRL_DSC, CTRL_FILE_CHANGES and CTRL_REPO_RELEASE and to 0 otherwise.
allow_duplicateβ sets whether the parser allows duplicate fields in deb822 control information.keep_duplicateβ sets whether the parser will keep values for duplicate fields found in deb822 control information (whenallow_duplicateis enabled), as array references.drop_emptyβ sets whether empty fields are dropped during output.
By default it is set to 0 for CTRL_TMPL_SRC and CTRL_TMPL_PKG and to 1 otherwise.
π $type = $ctrl->get_type()
Returns the type of control information stored. See the type parameter set during new(). that's it, that's the method π«Ά
π¦ CHANGES
π Version 1.05 (dpkg 1.22.12)
Deprecate types: CTRL_INFO_SRC, CTRL_INFO_PKG, CTRL_PKG_SRC, CTRL_PKG_DEB, CTRL_INDEX_SRC, CTRL_INDEX_PKG. π they had a good run.
π Version 1.04 (dpkg 1.22.2)
New types: CTRL_TMPL_SRC, CTRL_TMPL_PKG, CTRL_REPO_SRC, CTRL_REPO_PKG, CTRL_DSC, CTRL_DEB. π₯
π 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. she's officially out, iconic behavior π
ngl bestie, if you're touching deprecated aliases in new code, that's a yikes β the module literally tells you they're deprecated. use the new ones. π
and that's the whole page, pookie β written against 1.23.11-dirty, dated 2026-09-09, shipped with Dpkg::Control(3perl) from libdpkg-perl. go slay your deb822 parsing π
π
π¦ where this page comes from
- arch rolling: dpkg 1.23.11-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms