AptPkg::Source
Section: User Contributed Perl Documentation (3pm)
Updated: 2018-11-03
Page Index
NAME
AptPkg::Source - APT source package interface
SYNOPSIS
use AptPkg::Source;
DESCRIPTION
The AptPkg::Source module provides an interface to
APT's source
package lists.
AptPkg::Source
The AptPkg::Source package implements the
APT pkgSrcRecords class
as a hash reference (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.
Note that there is no iterator class, so it is not possible to get a
list of all keys (with keys or each).
Constructor
- new([SOURCELIST])
-
Instantiation of the object uses configuration from the
$AptPkg::Config::_config object (automatically initialised if not done
explicitly).
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).
Each hash contains the following entries:
- Package
-
- Version
-
- Maintainer
-
- Section
-
Strings giving the source package name, version, maintainer and
section.
- AsStr
-
The full source record as a string in Debian control file syntax <https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-controlsyntax>,
which is an RFC822-like set of key-value pairs with the values potentially
wrapped. It is relatively trivial to parse:
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.
- 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).
AUTHOR
Brendan O'Dea <
bod@debian.org>