X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2Flibsolv-pool.txt;h=cc7707ad1b7260fd144f10340d4a3eccbcc697b9;hb=c948f862b552adbe2cdee24096357b887dfbb088;hp=69291a4a5212bae95769557cb863368bde772067;hpb=e1659dc4ce74d3c47f465103951dafff8fc0cf9f;p=platform%2Fupstream%2Flibsolv.git diff --git a/doc/libsolv-pool.txt b/doc/libsolv-pool.txt index 69291a4..cc7707a 100644 --- a/doc/libsolv-pool.txt +++ b/doc/libsolv-pool.txt @@ -408,11 +408,33 @@ A conditional dependency, the ``name'' sub-dependency is only considered if the ``evr'' sub-dependency is fulfilled. See the section about boolean dependencies about more information. +*REL_UNLESS*:: +A conditional dependency, the ``name'' sub-dependency is only considered if +the ``evr'' sub-dependency is not fulfilled. See the section about boolean +dependencies about more information. + *REL_COMPAT*:: A compat dependency used in Haiku to represent version ranges. The ``name'' part is the actual version, the ``evr'' part is the backwards compatibility version. +*REL_KIND*:: +A pseudo dependency that limits the solvables to a specific kind. +The kind is expected to be a prefix of the solvable name, e.g. +``patch:foo'' would be of kind ``patch''. ``REL_KIND'' is only +supported in the selection functions. + +*REL_MULTIARCH*:: +A debian multiarch annotation. The most common value for the ``evr'' +part is ``any''. + +*REL_ELSE*:: +The else part of a ``REL_COND'' or ``REL_UNLESS'' dependency. See the +section about boolean dependencies. + +*REL_ERROR*:: +An illegal dependency. This is useful to encode dependency parse errors. + === Functions === Id pool_str2id(Pool *pool, const char *str, int create); @@ -815,10 +837,9 @@ SOLVER_FLAG_ALLOW_VENDORCHANGE flag. Boolean Dependencies -------------------- Boolean Dependencies allow to build complex expressions from simple -dependencies. While rpm does not support boolean expressions in -dependencies and debian only allows an "OR" expression, libsolv -allows arbitrary complex expressions. The following basic types -are supported: +dependencies. Note that depending on the package manager only a subset +of those may be useful. For example, debian currently only allows +an "OR" expression. *REL_OR*:: The expression is true if either the first dependency or the second @@ -829,21 +850,33 @@ installed. *REL_AND*:: The expression is true if both dependencies are true. The packages fulfilling the dependencies may be different, i.e. -``Supplements: perl AND python'' is true if both a package providing -perl and a package providing python are installed. The solver currently -only supports REL_AND in Supplements/Enhances dependencies, in other -types of dependencies it gets treated as REL_WITH. +``Supplements: perl REL_AND python'' is true if both a package providing +perl and a package providing python are installed. *REL_WITH*:: The expression is true if both dependencies are true and are fulfilled by -the same package. Thus ``Supplements: perl AND python'' would only be true +the same package. Thus ``Supplements: perl REL_WITH python'' would only be true if a package is installed that provides both dependencies (some kind of multi-language interpreter). *REL_COND*:: The expression is true if the first dependency is true or the second -dependency is false. Libsolv currently does not support this type of -dependency in the solver code. +dependency is false. ``A REL_COND B'' is equivalent to +``A REL_OR (NOT B)'' (except that libsolv does not expose ``NOT''). + +*REL_UNLESS*:: +The expression is true if the first dependency is true and the second +dependency is false. ``A REL_UNLESS B'' is equivalent to +``A REL_AND (NOT B)'' (except that libsolv does not expose ``NOT''). + +*REL_ELSE*:: +The ``else'' part of a ``REL_COND'' or ``REL_UNLESS'' dependency. +It has to be directly in the evr part of the condition, +e.g. ``foo REL_COND (bar REL_ELSE baz)''. +For ``REL_COND'' this is equivalent to writing +``(foo REL_COND bar) REL_AND (bar REL_OR baz)''. +For ``REL_UNLESS'' this is equivalent to writing +``(foo REL_UNLESS bar) REL_OR (bar REL_AND baz)''. Each sub-dependency of a boolean dependency can in turn be a boolean dependency, so you can chain them to create complex dependencies. @@ -882,3 +915,6 @@ Author ------ Michael Schroeder +//// +vim: syntax=asciidoc +////