1Dpkg::Deps(3perl)                libdpkg-perl                Dpkg::Deps(3perl)
2
3
4

NAME

6       Dpkg::Deps - parse and manipulate dependencies of Debian packages
7

DESCRIPTION

9       The Dpkg::Deps module provides classes implementing various types of
10       dependencies.
11
12       The most important function is deps_parse(), it turns a dependency line
13       in a set of Dpkg::Deps::{Simple,AND,OR,Union} objects depending on the
14       case.
15

FUNCTIONS

17       All the deps_* functions are exported by default.
18
19       deps_eval_implication($rel_p, $v_p, $rel_q, $v_q)
20           ($rel_p, $v_p) and ($rel_q, $v_q) express two dependencies as
21           (relation, version). The relation variable can have the following
22           values that are exported by Dpkg::Version: REL_EQ, REL_LT, REL_LE,
23           REL_GT, REL_GT.
24
25           This functions returns 1 if the "p" dependency implies the "q"
26           dependency. It returns 0 if the "p" dependency implies that "q" is
27           not satisfied. It returns undef when there's no implication.
28
29           The $v_p and $v_q parameter should be Dpkg::Version objects.
30
31       $dep = deps_concat(@dep_list)
32           This function concatenates multiple dependency lines into a single
33           line, joining them with ", " if appropriate, and always returning a
34           valid string.
35
36       $dep = deps_parse($line, %options)
37           This function parses the dependency line and returns an object,
38           either a Dpkg::Deps::AND or a Dpkg::Deps::Union. Various options
39           can alter the behaviour of that function.
40
41           use_arch (defaults to 1)
42               Take into account the architecture restriction part of the
43               dependencies.  Set to 0 to completely ignore that information.
44
45           host_arch (defaults to the current architecture)
46               Define the host architecture. By default it uses
47               Dpkg::Arch::get_host_arch() to identify the proper
48               architecture.
49
50           build_arch (defaults to the current architecture)
51               Define the build architecture. By default it uses
52               Dpkg::Arch::get_build_arch() to identify the proper
53               architecture.
54
55           reduce_arch (defaults to 0)
56               If set to 1, ignore dependencies that do not concern the
57               current host architecture. This implicitly strips off the
58               architecture restriction list so that the resulting
59               dependencies are directly applicable to the current
60               architecture.
61
62           use_profiles (defaults to 1)
63               Take into account the profile restriction part of the
64               dependencies. Set to 0 to completely ignore that information.
65
66           build_profiles (defaults to no profile)
67               Define the active build profiles. By default no profile is
68               defined.
69
70           reduce_profiles (defaults to 0)
71               If set to 1, ignore dependencies that do not concern the
72               current build profile. This implicitly strips off the profile
73               restriction formula so that the resulting dependencies are
74               directly applicable to the current profiles.
75
76           reduce_restrictions (defaults to 0)
77               If set to 1, ignore dependencies that do not concern the
78               current set of restrictions. This implicitly strips off any
79               architecture restriction list or restriction formula so that
80               the resulting dependencies are directly applicable to the
81               current restriction.  This currently implies "reduce_arch" and
82               "reduce_profiles", and overrides them if set.
83
84           union (defaults to 0)
85               If set to 1, returns a Dpkg::Deps::Union instead of a
86               Dpkg::Deps::AND. Use this when parsing non-dependency fields
87               like Conflicts.
88
89           virtual (defaults to 0)
90               If set to 1, allow only virtual package version relations, that
91               is none, or “=”.  This should be set whenever working with
92               Provides fields.
93
94           build_dep (defaults to 0)
95               If set to 1, allow build-dep only arch qualifiers, that is
96               “:native”.  This should be set whenever working with build-
97               deps.
98
99           tests_dep (defaults to 0)
100               If set to 1, allow tests-specific package names in
101               dependencies, that is "@" and "@builddeps@" (since dpkg
102               1.18.7). This should be set whenever working with dependency
103               fields from debian/tests/control.
104
105       $bool = deps_iterate($deps, $callback_func)
106           This function visits all elements of the dependency object, calling
107           the callback function for each element.
108
109           The callback function is expected to return true when everything is
110           fine, or false if something went wrong, in which case the iteration
111           will stop.
112
113           Return the same value as the callback function.
114
115       deps_compare($a, $b)
116           Implements a comparison operator between two dependency objects.
117           This function is mainly used to implement the sort() method.
118

CLASSES - Dpkg::Deps::*

120       There are several kind of dependencies. A Dpkg::Deps::Simple dependency
121       represents a single dependency statement (it relates to one package
122       only).  Dpkg::Deps::Multiple dependencies are built on top of this
123       class and combine several dependencies in different manners.
124       Dpkg::Deps::AND represents the logical "AND" between dependencies while
125       Dpkg::Deps::OR represents the logical "OR". Dpkg::Deps::Multiple
126       objects can contain Dpkg::Deps::Simple object as well as other
127       Dpkg::Deps::Multiple objects.
128
129       In practice, the code is only meant to handle the realistic cases
130       which, given Debian's dependencies structure, imply those restrictions:
131       AND can contain Simple or OR objects, OR can only contain Simple
132       objects.
133
134       Dpkg::Deps::KnownFacts is a special class that is used while evaluating
135       dependencies and while trying to simplify them. It represents a set of
136       installed packages along with the virtual packages that they might
137       provide.
138

CHANGES

140   Version 1.07 (dpkg 1.20.0)
141       New option: Add virtual option to Dpkg::Deps::deps_parse().
142
143   Version 1.06 (dpkg 1.18.7; module version bumped on dpkg 1.18.24)
144       New option: Add tests_dep option to Dpkg::Deps::deps_parse().
145
146   Version 1.05 (dpkg 1.17.14)
147       New function: Dpkg::Deps::deps_iterate().
148
149   Version 1.04 (dpkg 1.17.10)
150       New options: Add use_profiles, build_profiles, reduce_profiles and
151       reduce_restrictions to Dpkg::Deps::deps_parse().
152
153   Version 1.03 (dpkg 1.17.0)
154       New option: Add build_arch option to Dpkg::Deps::deps_parse().
155
156   Version 1.02 (dpkg 1.17.0)
157       New function: Dpkg::Deps::deps_concat()
158
159   Version 1.01 (dpkg 1.16.1)
160       <Used to document changes to Dpkg::Deps::* modules before they were
161       split.>
162
163   Version 1.00 (dpkg 1.15.6)
164       Mark the module as public.
165
166
167
1681.21.9                            2022-08-04                 Dpkg::Deps(3perl)
Impressum