AptPkg::Source(3pm)

πŸ’– AptPkg::Source πŸ’–

okay so bestie, welcome to the AptPkg::Source page πŸ’… this one lives in the User Contributed Perl Documentation bunch (manual section 3pm, if u were wondering), and it's literally the Perl door into apt's source package situation. come thru ✨


🌸 NAME 🌸

AptPkg::Source β€” the APT source package interface 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

use AptPkg::Source;

πŸ‘‘ DESCRIPTION πŸ‘‘

The AptPkg::Source module provides an interface to APT's source package lists. periodt.


πŸ’… AptPkg::Source

The AptPkg::Source package implements the APT pkgSrcRecords class as a hash reference (it inherits from AptPkg::hash). The hash is keyed on source or binary package name, and the value is an array reference of the details of matching source packages. iconic behaviour honestly.

⚠️ not me needing to tell u this: there is no iterator class, so it is not possible to get a list of all keys (with keys or each). sad but true, no cap 😭

🧚 Constructor

  • new([SOURCELIST]) β€” Instantiation of the object uses configuration from the $AptPkg::Config::_config object (which is automatically initialised if it hasn't been done explicitly, so don't stress πŸ’–).

If no SOURCELIST is specified, then the value of Dir::Etc::sourcelist from the configuration object is used (generally /etc/apt/sources.list).

🌈 Methods

  • find(PACK, [SRCONLY]) β€” In a list context, return a list of source package details for the given PACK, which may either be a source package name, or the name of one of the binaries provided (unless SRCONLY is provided and true).

In a scalar context, the source package name of the first entry is returned.

  • get, exists β€” These methods are used to implement the hashref abstraction: $obj->get($pack) and $obj->{$pack} are equivalent πŸ‘―

The get method has the same semantics as find, but returns an array reference in a scalar context.


The list returned by the find (and get) methods consists of hashes which describe each available source package (in order of discovery from the deb-src files described in sources.list). lowkey elegant.

Each hash contains the following entries:

my %fields = map { split /:\s+/ } split /\n(?! )/, $as_str;
  • Binaries β€” a list of binary package names from the package.
  • BuildDepends β€” a hash describing the build dependencies of the package. Possible keys are:
"Build-Depends", "Build-Depends-Indep", "Build-Conflicts",
"Build-Conflicts-Indep".

The values are a list of dependencies/conflicts with each item being a list containing the package name followed optionally by an operator and version number.

Operator values evaluate to a comparison string* (>, >=, etc) or one of the AptPkg::Dep:: constants in a numeric context (see "pkgCache::Dep::DepCompareOp" in AptPkg(3pm)).

*Note that this is a normalised, rather than Debian-style (>> vs >) string. yes bestie, the string is normalised, don't come for me πŸ™ˆ

  • Files β€” a list of files making up the source package, each described by a hash containing the keys:
"Checksum-FileSize", "MD5Hash", "SHA256", "Size", "ArchiveURI",
"Type".

πŸ”₯ SEE ALSO πŸ”₯

AptPkg::Config(3pm), AptPkg::Cache(3pm), AptPkg(3pm), AptPkg::hash(3pm).

the whole friend group fr fr πŸ’œ

✨ AUTHOR ✨

Brendan O'Dea <bod@debian.org> β€” king behaviour, we stan πŸ‘‘


and that's the whole page bestie, we ate and left no crumbs πŸ“ this was perl v5.42.3, dated 2026-08-19 β€” go forth and read ur sources πŸ’–βœ¨

πŸ“¦ where this page comes from